Posted on the night after Christmas, 2020.
(With apologies to Gandhi's autobiography for the title.)
At the beginning of 2019, I wasn't doing well, and mostly hadn't been for a long time. I was very unhappy and saw nothing on the horizon to be excited about. Life felt like an endless series of chores with no payoff.
I reached the point at which the uncertainty that goes along with making a radical change was less terrifying than the prospect of life continuing as usual. There's a saying that you should always make sure you're running toward something, not away from something, but I don't agree at all. How am I supposed to get excited or motivated about anything if I'm busy being miserable all the time? Sometimes, to make space in your life to even figure out what you do want, you have to first leave the situation that you don't want. To that end, I left the job and city I had spent my entire adult life in, with no real plan for the future.
It wasn't a panacea, but it was a good move. By the beginning of 2020, I was enthusiastic, I had concrete goals, and I felt like my life was moving forward again. And then, of course, COVID hit, putting the whole world on pause in a sense. Much of the vibrancy and liveliness of the city I now lived in evaporated overnight. Expanding my social circle in any meaningful way became very difficult. Having no roommates became as much an affliction as a privilege. And it's been an especially terrible time to be single.
Still, in some ways it was an excellent year for me. I made good progress on the goals I set and on a number of personal projects. I love where I live, and my work situation is great. And most importantly, I have absolutely wonderful friends, near and far. Thanks to all of you whose presence and support - whether in-person or technologically-mediated - kept me at least barely sane.
I set five goals at the beginning of the year.
I also wrote a song for the first time in 7 years! Then I wrote another, and I have at least a couple more in the works that I feel good about.
According to the ~30 seconds of research that I could bring myself to do, you need to run for a minimum of 20 minutes, 3 days per week, to get cardiovascular benefits from it. From January to September, I did that bare minimum; then for about a month I did 30 minutes instead of 20.
Last time I tried to get in the habit of running, I set distance targets instead of time targets. But I like the latter much better. It's easier to motivate yourself to endure torture when you know it will be over within a fixed amount of time.
Still, I decided to stop, for a few reasons:
Instead, I'm going to try to do more hiking and also experiment with HIIT.
I'm not sure Pham was happy about me being home all the time this year. My current apartment is relatively minimalist compared to the last one, so we're frequently fighting over the same space. My synthesizer is his favorite perch, and my desk chair is his favorite bed.
Our biggest source of conflict was the windows, though. This was Pham's first time (with me, at least) living on the ground floor. He spends most of his waking hours watching intently for squirrels, birds, and whatever else he dreams of dismembering. Unfortunately, since it's a studio apartment, the room is too bright for me to sleep in unless I cover up his observation portals, and he doesn't like that at all. If I close the blinds, he'll force his way through them, a process which is both loud and destructive.
So for a while, we compromised, by which I mean I learned to leave the blinds open at night and take a lot of mid-day naps to compensate for sleep deprivation. Thankfully, curtains seem to have resolved the problem. Contra my fears, he doesn't (usually) use them as a scratching post. And he's never accidentally pulled the tension rod off the wall, which is more than I can say for myself.
Meditation is all the rage these days, and a couple of my friends have attested to finding it very beneficial. Early in the year, I read Tara Brach's book Radical Acceptance, which I wasn't a huge fan of but did convince me to finally give meditation a try. I did daily short sessions for a while, stopped, then started again after reading Sam Harris's Waking Up.
I'm still not sure how I feel about it. Unless I'm really tired, trying to sit still and think about nothing is not fun and I'm generally impatient for it to be over. But the effort to force my mind off of whatever track it's been on sometimes allows new or forgotten ideas to come to the fore, which seems useful.
Meditating outside is also a good way to make sure I take time to really appreciate the beauty around me. I'm not normally the sort of person who would just sit and focus my entire attention on watching a bird hop around or a river flow, but doing so can be rewarding.
Apparently a few months off from programming professionally was all I needed to regain my love for it as a hobby. I worked on several side projects this year:
Blunt Instrument, a tool for exploring what happens when you run a piece of JavaScript code. I was inspired by a classic Bret Victor post which talks, among other things, about the usefulness of mapping time onto space so that you can see in one glance how a system's state changed over time. That's still not commonplace in software development, and I think there's a lot of opportunity there. | |
Mark Headboard, a VS Code extension for using Markdown files as rudimentary equivalents of Trello boards. | |
I partially replicated a simulation from one of the research papers referenced in the networks course I was taking. No, it wasn't an assignment, this is what I do for fun, stop looking at me like that. | |
Command-line tools for note management, data export management, and sanity checking backups. |
I also (re)discovered that I really like Python. For the past few years I've worked primarily with Ruby and Java. Ruby is delightful, but every language has tradeoffs, and one of its big ones is that the extreme dynamism often makes it very difficult for the programmer - and even static analysis tools - to figure out what kind of object you might be dealing with at any particular point, and where a given method might be defined.
In a statically typed language like Java, IDE features like "go to declaration", autocomplete, and automated refactoring work far better, which can be really useful in large projects. I've found that Python's optional typing system lets you get many of those benefits, while still being fun and fast to code in.
Video games stopped being a routine part of my life after I graduated college, but I do occasionally get sucked into one. Previous favorites include Baba is You, Breath of the Wild, Stardew Valley, and FTL. Two games became temporary obsessions this year.
One was The Witcher 3, which is not the kind of thing I'd normally expect to enjoy: the premise sounds like cliche tripe, and anyway, I usually lose interest in open-world games quickly. But it does a marvelous job of pulling you into its world; I was so eager for more that I couldn't wait to watch the TV show (good) and read one of the books (meh).
The other was Celeste, a platformer requiring very precise actions. It's made of many short segments designed to be retried over and over until you've trained yourself to execute exactly the right sequence of maneuvers, since even small mistakes usually mean death. I find this (literally?) addictive for some of the same reasons I found Guitar Hero addictive: there's a flow and rhythm to performing these sequences that is highly satisfying.
I'm continually trying to find the best way to divide my time between different things that I want to study. This year, that meant math, school, and various nonfiction that I wanted to read. The obvious and maybe most sensible approach would be to just schedule specific times of day on my calendar for each one, but that sounds soul-crushing. Instead I have recurring tasks for each in Todoist. (That app basically runs my life at this point.) I do the studying whenever I feel like it on a given day and check it off the list.
For a while, I used a rotation: day 1 had a task for reading nonfiction, day 2 for studying math, day 3 for schoolwork, repeat. This is how I've managed piano practice for a couple years and it works well for that, where my rotation is practice old songs, work on learning new songs, work on improvising or composing. I'm not sure it's ideal for studying, though. Once something's been out of my head for two days, returning to it feels like a larger context switch than if I had been doing it just the day before. Which makes me more likely to procrastinate it, throwing off the rotation and making the problem worse. So I'm back to trying to make time for all three each day. That's only achievable if I set a very low minimum time goal; I've been trying to do 25 minutes of each recently and that seems to be working.
Another cause for procrastination was that I viewed note-taking as part of these tasks. I feel compelled to take lots of notes, but I hate the process of doing it. I've tried various policies like writing up notes at the end of each session, or the end of a chapter, or on finishing a book, but the effect is usually that I procrastinate on starting to read something because I know I'll have to do that at the end. Or I finish the reading, and am blocked on starting to read something new because I'm busy procrastinating taking notes on the last thing.
I've reached two conclusions. The more definite one is that I need to let go of the compulsion to take so many notes. It's just too time-consuming. In an interview, A.J. Jacobs mentioned that he keeps a document where he writes just the one best thing for each book/podcast/etc he consumes. I like that idea of forced selectivity a lot.
The more tentative conclusion is that I should decouple note-taking from other study activities and time-box it. So, I just have a daily task to spend 10 minutes updating my notes. If the notes start to get far behind what I've read, it's a signal for me to lower the quality/quantity of notes so I can catch up. This is working well so far.