Groundhog Day Resolutions - November 2020

October is now a distant memory. Let's see how it went.

October's Primary Goals

1. Publish version 0.5 of Writing PHP with Emacs

Version 0.5 is now available for purchase, or as a free update if you already own a copy of the book. I'm still working on the Serenata section of the chapter, but I didn't want to hold everything else up until that was finished.

2. Start blogging every day

I am just over halfway through my 30 days of blogging goal. It's going okay.

3. Complete another secondary goal

Writing took up most of my spare time so I missed out on this one. Must try harder.

Primary Goals for November

1. Finish my 30 days of blogging trial

Writing every day has been challenging, but I've been publishing something every day. I still have some ideas I want to write about and I think I can make the full 30 posts.

2. Start planning my 2021 goals

Last year I left it far too late to set goals, so I ended up throwing in things I wasn't 100% sure I wanted to do. Covid restrictions also put a damper on a lot of the goals I wanted to do, either through cancellation (my marathon and half marathon), or by making goals not so fun (lock myself in my office for a week? Kinda already doing that).

For 2021 I want to mix some smaller, more practice-oriented goals into my list.

I'm keeping things light in November and focusing on getting important things done well, instead of trying to scrape together my minor goals. October involved a lot more writing than I'm used to, and there are still 15 days of writing left. I don't expect I'll feel like doing much else until December.


The empty page

I've always found a blank canvas to be completely overwhelming. What should I create? What if I make a mistake and ruin it? What if I create something that isn't any good?

This is something I'm running into again, but in a slightly different way.

I recently discovered agtools, a framework for building ST game prototypes. I grew up creating software for the ST, but I never had the ability to make what was in my head. I feel like I've learnt a few tricks since then, so I was excited to try out building something new.

But I still don't have the ability to make what's in my head.

Instead of being scared of this huge blank canvas, my mind is racing with the possibilities of what I could fill it with. But that first brush stroke ultimately leads to disappointment, and what I create looks nothing like I wanted.

When I was younger I loved buying sketchbooks and artist's pencils. They always had fantastic illustrations on the front, so surely if I bought them I'd be able to do the same. Alas, these supplies did not come with any spare talent.

Sometimes I worry that I'm cursed with Philip J Fry's stupid fingers.

But the truth is that I'm trying to run before I can walk. I would never try to lift heavy weights without working up to it, but for some reason I think I can pick up a set of tools and bust out a new game without trying something small first.

I think this is the perfect use-case for deliberate practice. My mind always goes straight to creating something ridiculously large instead of focusing on something small and attainable. I'll get the idea for a game, and before long it's mutated into an epic 12 part adventure that I could never realistically create.

So in the end nothing gets done. The idea remains a collection of thoughts floating in the ether.

But if I focused on creating something small - and I do mean small - I could actually finish it. Framing it as a practice project gives it the structure it needs without the pressure to create something great. Not every idea will be a winner, and that's fine.

It's okay to fill the empty page with scribbles.


Corralling my open loops

An Open Loop is anything pulling at your attention that doesn't belong where it is, the way it is.

Getting Things Done

Open loops have been a thorn in my side since I restarted using GTD last year. I have two main issues right now:

  1. There are things I want to do that aren't in my system
  2. There are things in my system that I don't do in time (or at all)

Every one of these open loops nibbles away at my attention. For example, instead of concentrating on writing this post, I'm thinking about how I need to send some emails, submit an invoice, and whether or not I'm due for an eye test, amongst a sea of other things. It's not conducive to being productive.

Let's start with #1 first.

1. Things that aren't in my system

This is probably the easiest one to solve: I need to get better at capturing ideas and then processing them.

Right now there are a dozen different ideas floating around my head. Some of those things I need to do somewhat urgently, others will go straight into my someday/maybe list.

The big issue here is that they're not stored anywhere. I'm usually pretty good at capturing things throughout the day, but I'm not so diligent about performing full mind dumps on a regular basis. I should be doing these at the start of my weekly review, but I tend to skip them as my mind is in "process" mode instead of "create" mode.

Solution - schedule time to perform a full mind dump, separate from my weekly review.

2. Things that are in my system, but don't get done

Most of my day is taken up with work-related activities: writing emails, fixing bugs, and working on existing projects. Concentrating entirely on work projects doesn't give me much time to go through my next actions list, and by the time the evening rolls around I'd rather not be staring at the computer screen for another 4 hours.

All of this results in my list getting longer as the week goes on, which in turn makes me reluctant to add new things to it. Not everything on my next actions list is important or urgent, but it still irks me to see the same tasks there week after week.

In the past I've taken a day off work to run through my next actions list instead. This always feels a little icky to me; it means I'm not balancing things as well as I want to, and I always feel guilty about not working (which is absolutely unhealthy and something I need to work on). A better solution would be to work on non-work tasks every day instead of waiting for my list to reach breaking point.

Solution - revert to using a daily schedule, and make time during each day to work on things from my "next actions" list.

I'll be testing both of these solutions out for the next month or so. We'll see how it goes.


2020 marathon race report

In 2019 I ran my first half marathon. For 2020 I wanted to go even further, so I set myself the target of running a full marathon.

It didn't go quite as planned.

Race Information

Date March 15th, 2020
Distance 26.2 miles
Time 5:37:39

Goals

Goal Description Completed?
A Finish in under 5:00 hours No
B Finish in under 6:00 hours Yes
C Finish the race Yes

Training

I stuck pretty close to Hal Higdon's Novice Marathon plan. I kept notes throughout my training, which I've tidied up below:

  • Early training weeks are hard because of lack of practice. Later weeks are even harder and tire me out.
  • Motivation really dipped halfway in, around the time I completed my first 13.1 mile training run.
  • Training is REALLY time consuming. Longer runs can hours to complete, and then there's added hours for recovery.
  • Foam roller helps a lot with recovery. As do compression socks and knee brace.
  • I wanted to eat a lot of food ALL the time.
  • I felt really out of shape, even though I was the fittest I've ever been.
  • Somebody tried to run me over on one of my long runs, and they followed me home in their car. That put me off running outside for a while and made me quite nervous.
  • Tuesday runs are the hardest to get motivated for. I still ache from the long run on Sunday, and 3 miles doesn't feel like worth bothering with. Once I got going they were fine.
  • Failed my first 15 mile run. I only hit 11 miles and struggled with the last hour. Walked a fair amount. I did swim the day before, so that might be why.
  • Cold weather running is brutal. Thermal undershirts help.
  • My run on 30/01/2020 was awful. I REALLY wanted to quit after 1/4 mile. I stopped and turned around before forcing myself to keep going. I felt a bit agoraphobic.
  • The 18 miler went okay, but got boring towards the end and the last few miles were very hard. It hurt my quads and took two days to recover from.
  • I got to run side-by-side with a train. That was neat.
  • Ran my 20 mile week pretty comfortably. First 5 mile run was nice and quick. 10 miler was pleasant enough. Last 5 miler hurt due to aches, but was doable.
  • Last 20 mile run was a complete bastard. Coming up the hill was agony, and my upper thigh hurt a lot. Took two to three days to recover properly. Rolling helped.
  • It was REALLY hard to motivate myself once tapering was in place. Retroratcheting goals on Beeminder helped.
  • 8 miler after 20 miler really hurt after about 4/5 miles.
  • Took the last 12 miler off due to IT band soreness. Didn't want to do take time off, but didn't want to risk further injury.

Pre-race

I stuck pretty close to my half-marathon prep:

  • No alcohol for at least 7 days before the race.
  • My night before meal was fresh spaghetti and meatballs.
  • I ate 40g (dry weight) of oatmeal 4 1/2 hours before my start time.
  • I drank around 8oz of sports drink (Skratch Labs) before starting.
  • Applied a healthy amount of astro glide to the appropriate areas.

Race

The actual race was canceled due to COVID-19. The race was due to take place on March 15th, and on March 10th I received an email saying it was still going ahead. Two days later it was canceled. I spent the day deciding on whether or not I'd do it by myself or just wait until 2021.

In the end I decided to go for it.

The first half came in 2 seconds under my target time, but I knew as soon as I hit the mark that I wouldn't make the finish at the same pace. I shifted to "finishing slow is better than DNF" mode.

The last six miles were extremely painful, especially in my thighs. I walked for around a mile until the pain decreased.

It was difficult to stay hydrated. I brought 20oz of sports drink with me, but I had to ask for someone to deliver two bottles of water around mile 20. That might be the best water I've ever drank.

I found running alone to be particularly challenging. There's nobody to set pace with, and I was running laps which was boring. My headphone batteries died around 4:30 which really tanked my energy. I ended up running the last few miles on the street to break up the monotony.

Finishing alone was a bit of an anti-climax; I was waiting for my watch to say "26.2" so I could stop, rather than running under a banner to the sounds of cheers. Having done it both ways, I can say that having other people around makes a huge difference to how it feels.

Post-race

Post-race felt a lot like a really bad hangover. My mouth was dry and no amount of water helped. My lips were chapped. Everything hurt. I sat in the car on the way home and confidently declared "I am never doing that ever, ever again".

My next marathon is March 21st, 2021.


Deliberate practice

I've been reading the late Aaron Swartz's "Raw Nerve" series over the past couple of days. The "Confront Reality" article covers what is needed to become an expert, and the following quote gave me a lot to think about:

Synthesizing hundreds of these studies, K. Anders Ericsson concluded that what distinguishes experts from non-experts is engaging in what he calls deliberate practice. Mere practice isn't enough – you can sit and make predictions all day without getting any better at it – it needs to be a kind of practice where you receive "immediate informative feedback and knowledge of results."

This sounds a lot like Stephen Covey's seventh habit, "sharpen the saw".

I'll admit, I haven't been as diligent about sharpening the saw as I would like. When I first started programming I would happily make little toys to experiment with whatever I was learning. They weren't supposed to be products or the next Big Thing, they were like sketches to be drawn and discarded.

All of that stopped once I started working as a professional developer. Suddenly I felt that everything I created had to be good. I couldn't just create a throw away software, I had to create useful tools or high quality games. Gone were the days when I'd be happy to get a little sprite jumping around the screen - now it had to be a top-quality platformer with multiple levels and ultra-tight gameplay.

I'm not sure why this happened, but it's something I'd like to fix. Earlier in the year I read Mastering Software Technique - it's a great book about running "coding studies" to practice and learn the programming skills. It covers the entire process: deciding what to study, structuring the study itself, and how large (or small) the studies should be.

I should probably read it again.