« Scott Nonnenberg

A system for 2015

2015 Feb 06

thanks to tiffany98101 on Flickr

Happy New Year! This time last year I posted an entry about my system for managing the day-to-day; something a little different from the standard list of resolutions. For 2015 I’m announcing the open-source release of that system!


My ‘thoughts system’ has been in its current form since August 2013, and I’ve been on the regular journaling bandwagon since October 2012. Now you can join in! You can find the project on github: https://github.com/scottnonnenberg/thoughts-system.

It’s the very same set of scripts I use to manage my daily journaling, track my daily productivity, track weekly and monthly goals, etc. If you’ve got git and node.js installed and can run shell scripts on your system (OSX, linux/unix, or something like Cygwin for Windows), you’re good to go!

To get started, install the project to a directory with this:

$ git clone https://github.com/scottnonnenberg/thoughts-system.git <dirname>

Now all the generation and analysis scripts are there and ready to go! Start your first journal entry with this:

$ ./journal.sh

It entirely operates on text files so your data is easily manipulated programmatically, and will continue to be accessible as various binary file formats come and go over the years. It also evolves with you, since it’s dead simple to change the templates used when generating journal, daily, weekly and monthly files.

If you use it, I’d love to hear what you think!

example: some stats from 2014

Well, how did it work?

Okay, maybe you’re a bit hesitant. You’re asking yourself whether it worked for me. Well, for me it was a resounding success. I really got into a rhythm of daily journaling and productivity tracking. As you can see above, by the end of 2014, I had done my daily journal for 367 days in a row. My goal to hit 100% for 2014, combined with the tools to track my progress and the ability to tweak things regularly as necessary, made it a powerful self-reinforcing system.

Once I was done with my journal for the day, I could get a multi-year perspective via my script thisDayInHistory. It does what you might guess: it pulls up documents from this day in history: journals, log entries, weekly and monthly documents. Reading through old journals, some recent and others transcribed from old notebooks, it became crystal clear that I frequently get sick in October/November/December. Since it was never standard flu symptoms, I never thought it was the standard flu season thing. Now I know!

Beyond those daily rhythms, I use a weekly file to bridge between immediate and longer term perspectives. New for 2014 was another component of that bridge, monthly reviews. Each one was quite comprehensive: a subjective summary, notable events, achievements, learnings, and various stats. Reading through all twelve of those made my end of year 2014 review probably the most insightful I’ve ever had.

It was beautiful. The flow was so natural. I first read through all my monthly reviews in reverse, attempting to counteract that bias towards the most recent. As I read, I assembled a comprehensive 2014 review with the same components from my monthly review: notables, accomplishments, financial summary, various other stats. Then I worked on my 2014 business and personal taxes. Then did some 2015 financial planning based on 2014 numbers. Then I made 2015 financial/work goals, finally expanding out to a global perspective for 2015.

Having that level of visibility into 2014, and the experience going from monthly reviews to the yearly review really made my planning for this year better than any I’ve done before. My 2015 goals are more realistic: they better reflect how I actually spend my time and what I care about, and where possible use 2014 numbers as a baseline.

Changes for 2015

It wasn’t perfect, of course. There were some things that needed improvement.

First, that always-difficult merging of the daily tactical with the larger strategic. My monthly reviews attempted to bridge the gap, but functioned primarily as a bottom-up effort. I collected data for each month by looking at my finances, looking at my calendar, and gathering statistics from other sources. But I found it difficult to weave that together with my yearly goals.

So this year, I used a similar structure for my monthly reviews and yearly goals. I’m looking to hike 20 times in 2015, so I put something into my monthly review template tracking that. This mostly comes naturally since I’ve gone through it once, and can easily visualize how my monthly reviews will feed into my end-of-year review.

I also finished the subjective bridge between the year, the month, and my daily journals by adding a ‘subjective summary’ section to my weekly document template. When the week is done, I’ll take a step back and talk about how I think it went, what the major focuses were, etc.

Lastly, I typed a whole heck of a lot in 2014. For my 365 journal entries for 2014, I wrote 331,445 words total, averaging 908 words per day. If I were writing a novel I would probably be happy with those stats. But I’m trying to improve my posture and avoid the muscle tightness that comes from being in the same ‘ready to type’ position all day. So this year I’m doing more journaling via audio recording. It’s not as easily searchable, but I think that’s okay. Anyway, it won’t be long before I can just pipe it all through software to get the text. :0)

Here’s to another great year!

I won't share your email with anyone. See previous emails.
Posted: 2015 Feb 06
Tags: fun, goals, software
On GitHub: posts/2015-02-06-a-system-for-2015.md


The dangerous cliffs of Node.js 2015 Feb 11

It’s not all roses in the world of Node.js. In fact, more than just about every other platform I’ve used, it can feel like a precarious mountain path with a long cliff below. Yes, it features some... Read more »


Hippie Experiments 2014 Dec 17

I’m outing myself. I have some distinctly hippie-style attitudes. I don’t really go for cleanses or macrobiotic eating, but I certainly like my modifiers. Local, organic, raw, unprocessed, grass... Read more »

It's me!
Hi, I'm Scott. I've written both server and client code in many languages for many employers and clients. I've also got a bit of an unusual perspective, since I've spent time in roles outside the pure 'software developer.' You can find me on Mastodon.