Tracking my workouts with Emacs

The system I use for tracking my workouts is similar to the one I use for tracking my diet. Both of them use Emacs and an org-mode file for storing data, but my workout tracking is simpler as I'm not making entries during the day.

A typical workout entry looks like this:

* CAL-OUT Exercise for <2020-10-26 Mon>
  :PROPERTIES:
  :beeminder: bodyweight-workouts
  :beeminder-skip-deadlines: true
  :END:

** Warm up

 - [X] 10 x Shoulder Band
 - [X] 20 x Wrist rotations
 - [X] 20 x Side leg raises
 - [X] 20 x Glute bridges
 - [X] 20 x Donkey kicks
 - [X] 90s x Dead Bugs
 - [X] 90s x Hollow Hold

** Strength

Aim for 5-8 of each one, 3 sets total (4 optional). Rest 90 seconds between  pairs.

|------------------------+-------+-------+-------+-------|
| Exercise               | Set 1 | Set 2 | Set 3 | Set 4 |
|------------------------+-------+-------+-------+-------|
| Bodyweight Squat       |     5 |     5 |     5 |     5 |
| Pull Up                |     8 |     8 |     8 |     8 |
|------------------------+-------+-------+-------+-------|
| Ring Hold (seconds)    |    20 |    20 |    25 |       |
| Romanian Deadlift      |     8 |     8 |     8 |       |
|------------------------+-------+-------+-------+-------|
| Incline Row            |     8 |     8 |     8 |       |
| Pushup                 |     8 |     8 |     8 |       |
|------------------------+-------+-------+-------+-------|
| Lying leg raise        |     6 |     6 |     8 |       |
|------------------------+-------+-------+-------+-------|

** Notes

- Some soreness in the left elbow

It's a really simple mix of an org-mode checklist and a table for individual exercises. I like how flexible tables are in org-mode, and entering data is quick and simple.

The PROPERTIES: block is entirely optional. It uses beeminder.el to submit a data point whenever I close the org-mode headline.

Like my diet file, adding new entries is handled by org-capture. I don't currently extract statistics from my workout file, but it's on my TODO list. Even without any stats it's extremely useful to look back and see where I've improved, and the notes section reminds me of what worked and what didn't.

The routine itself is based on the /r/bodyweightfitness recommended routine.


How to measure my productivity?

I often read - and write - about productivity, but what am I actually thinking of when the word "productivity" comes up? How should I measure how productive I'm being?

My current method is really simple: I count my hours billed. As long as I'm doing enough work, I class my day as productive.

There are a whole bunch of problems with this approach:

  1. It prioritizes work over everything else.
  2. Some days are filled with fixing bugs across a number of different projects. This adds up to more billed time, so I earn more than if I'd concentrated on a single project.
  3. It doesn't take organizational work into account.
  4. It feels like I'm trying to extract as much money out of myself as possible. If I have the choice between working through the evening or relaxing, I'll often pick work because it's the "productive" thing to do.

So it's not ideal. What else could I use?

Count the number of TODO items checked completed
This one sounds good, but it has issues. It's easy to prioritize small, less-important tasks to bump up the numbers.
Velocity
This comes from extreme programming and involves counting how many story points have been completed during a sprint. This would probably involve me summing the estimated time of tasks completed during a week, and then graphing them as the year goes on.
Some kind of points system
I did this before using The Printable CEO. It helped at the time, but it still has the habit of skewing things depending on how points are assigned. I also spent a little too much time on tweaking how everything was set up.
Some kind of calculated score
This would be something that takes priority, size, and earliness (or lateness) of completion into account. I have a feeling I'd end up spending too much time tweaking the calculation.

Out of all of these I prefer the velocity calculation. But it's still missing a key part: what about my goals?

What I really want to be checking is "am I doing enough to move me closer to each goal". I don't have to work on every goal every day, but I also don't want long periods where I'm ignoring them.

I think I'll end up going with a mix of velocity, regular check-ins, and some magic ingredient that I haven't quite figured out yet. None of them have the external reward that comes from completing billed work, so maybe I need to start with some kind of reward system.


Goal ideas for 2021

One of my tasks from yesterday's GHD post was to start planning my 2021 goals. Although I don't have any concrete plans yet, I wanted to start thinking of ideas so they can stew in my brain for a while. Here are some of the goals I'm considering:

Create a screencast
This is something I wanted to do in July, but it turned out to be more complicated than I originally thought. I don't see myself creating more than one or two of these, but I'd like to try it out.
Enter a game jam
Tiny Tactics is the last game I tried to make. It didn't go well. The last playable game I made was Mini Shinobi all the way back in January of 2017. I'd like to try again in 2021, this time with a big neon sign above my desk saying "KEEP IT SIMPLE!" so I don't try to make something giant in a month.
Write a piece of software for the Atari ST
I got extremely nostalgic when looking at my nineties development setup, so I'd love to create something for the ST. Like the previous goal, I'll need to remind myself to keep it simple.
Release a game and earn at least $1 from it
This is a tougher one, but I think it's possible. There are a million more games available these days, but there are also plenty of places to sell them. I think $1 is doable.
Learn to throw a football
Hey, not all goals have to be huge!
Improve my marathon time
I ran my first marathon this year, but I was disappointed at how long it took me. I'm never going to be setting records, and I'm absolutely fine with that, but I'd like to finish in under 5 hours next time.

It feels good to be coming up with ideas, but it feels really weird to be thinking about 2021.


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.