Sorta Insightful turns three years old today! Whether you were here from the beginning, or just discovered this blog, thanks for reading.
I normally write a sappy, self-reflective post for my blogging anniversary. This year, I’m deciding to do a bunch of data analysis instead. It’s still self-reflective, just in a different vein.
Last year, I wrote 22,409 words. How about this year?
I wrote 24,449 words. Here’s the breakdown in chronological order.
I wrote 12 posts this year, following my trend of 1 post a month on average.
Eagle-eyed readers may notice that the reinforcement learning post was much, much longer than the rest, taking up almost 40% of the words I wrote for Sorta Insightful this year.
These view counts are aggregated from August 18, 2017 to today.
Okay, I knew the RL post would be the outlier. I didn’t think it would be the outlier by that much. Jeeeez.
Time Spent Writing
For the past two years, I’ve been using Gleeo Time Tracker to track my time. I track a few things: how long I sleep, the length of my commute, how much time I spend reading books and web fiction, what video games I play (and for how long), and how long I spend writing.
Despite having two years worth of data, I’ve never bother doing any analytics on it. This post felt like a good excuse to start.
Excluding the time spent on this post, I spent 131 hours, 21 minutes writing for my blog this year. At first, this felt like less than I expected, but this averages out to about 21-22 minutes a day, which feels correct.
When I Write
Most days, I don’t do any writing. My motivation comes in bursts. I like starting and finishing posts within a few days, and it feels like I do the most writing on the weekends. Is that true?
Gleeo Time Tracker doesn’t have the tools for this built-in, but you can export your time tracking data as a CSV file. This makes it straightforward to do further analytics. I used Python for this, since that’s my go-to programming language.
Here’s how much time I’ve spent writing on a given day of the week.
|Day of the Week||Hours|
Turns out I was super wrong! I actually do most of my writing on Wednesday. I guess blogging is my outlet for getting through the middle of the week?
Alright, so I was wrong about the day of the week. How about the time of day? I’ve often joked that my most productive writing hours are between 11 PM and 2 AM. Is that true?
|Time of Day||Hours|
Well, it’s very close to true! I was an hour early, I’m most productive between midnight and 3 AM.
The more impressive (and scary) thing is that I’ve written during literally every hour of the day. Who’s even awake at 5 AM? And given that I have 1.67 hours of writing at that time, I must have done it at least twice.
Time Spent Per Post
My time tracker data doesn’t store the post I was writing at the time. However, thanks to the magic of Git, I can reconstruct what post I was writing on a given day.
This blog is a Github Pages blog, so every change to this blog is done through a Git commit, with timestamp. First, I exported all commits I’ve ever made.
With a few exceptions, the Git history for this blog is structured as a tree.
Every post starts by branching off of
master. I work on the draft there,
building my site locally to preview how it looks. When the post is finished,
I go back to
master, then run
git merge --squash <branch name>. This
creates a single commit that’s the sum of all changes made in that branch.
This workflow means that writing-wise, the only meaningful commits are on the offshoot branches. These commits lie on exactly one branch, which corresponds to exactly one post.
This gives me a list of commit times (from Git) and a list of
intervals (from my time tracker).
If a commit lies within the interval, it’s paired with that interval.
Not every interval contains a commit, since I didn’t commit my work during
every writing session. but I can assign those intervals based on the closest
commit. Summing all the intervals paired with the commits on a given branch
gives me the time I’ve spent working on that post.
Here’s the time spent for each post, ordered from most to least. For context, I also include the number of words in that post.
A few people have asked me how long it took me to write my reinforcement learning post. Well, there’s your answer: 53 hours, 20 minutes. Based on commit timestamps, the first draft was started August 2017, most of it was written between October 2017 and Christmas 2017, and editing based on early feedback was done between Christmas 2017 and Valentine’s Day 2018.
The time for that post actually lines up eerily well with the word count. The RL post was almost 40% of the words I wrote this year, and the post took almost 40% of my writing time. This correlation immediately falls apart for the other posts.
You may have noticed the crazy outlier of “1.95 hours to write 155 words”. It’s very misleading. Based on my commit messages, that post included updates to my About page and Research page, which isn’t reflected in the reported word count.
There are two other outliers. I spent 1.3 hours writing 1464 words for the OpenAI Five post. If you read that post, the lack of polish should be obvious. I spent 5.28 hours writing 450 words for the MLP Music Recs page, but most of the work there was spent searching up songs on YouTube and narrowing the list down to 1 song per artist.
As for the drafts: we’ll see if I finish any of those. I believe it’s perfectly healthy to have lots of incomplete projects. You aren’t obligated to finish everything you start. Still, it feels weird to have 15 hours of work on an unfinished draft, when most of my posts take less than 10.
Well, to be honest, I’m not really sure. Historically, if I say I’ll write a post in the upcoming year, I never get around to writing it. This year, I’m deciding not to commit to writing anything. Instead, I’ll write whatever I have motivation to write. This isn’t really a change, it’s simply me being more realistic about what’s going to happen.
Although, to be honest, I do still want to write that post about Gunnerkrigg Court. I’ve been talking about writing that post for over two years. One day, it’ll happen. It has to.