I usually wait until my birthday to introspect on my life and make any course corrections that have been percolating in my subconscious. However, this year my subconscious seems to be ready for the percolations to bubble up on a more traditional "New Year's resolution" schedule, so I'm going to run with it.
Three things have percolated up, all somewhat intertwingled:
- Have more fun!
- Do more small projects.
- Share/write about them.
The need for the fun has been building up in multiple contexts. One, I've been toiling away on Compose, my programming language, for a year now and I am deeply mired in a lot of hard problems. Rather than continue to roll this one enormous boulder up the mountain, inch by inch, I'm going to try to break it into many smaller boulders, each of which will enable something fun to be done with the language. My momentum of late has been poor, and I think this will help. I'll post on the Compose blog with more details on my plans in this regard.
Two, I've been apprenticing to a Seattle taiko performance group for most of 2018, which started out as a "yay taiko is awesome and I'm having so much fun" experience and ended up as an "I must devote every bit of energy/time I can muster to practicing our repertoire and working on my basic form so that I make the cut" experience. That was in itself a good experience (good in the sense of good for me, like vegetables), but not something I want to continue unabated. Luckily, I made the cut, so now I have more leeway to explore things that are not strictly part of our repertoire, but that I think are fun and interesting.
I also hold the conviction that doing what you think is fun is the best way to have a positive impact on the world (in addition to increasing the area under your personal happiness curve). So you know, I should be walking my talk.
My motivation to do more small projects comes from a few places, but primarily because they're fun! I made a little list tracking app last year which was a very sastifying diversion from my Sisyphean programming language project. Toward the end of the year I indulged myself once again in Advent of Code which was a good reminder of the fun/complexity tradeoff that comes with most engineering projects. Simple projects can be super fun! Complex projects can be super unfun. There's likely a sweet spot between fun and complexity that maximizes the likelihood that what I'm building is of interest to anyone other than me, so I won't be doing Project Euler problems all year, but I will try to take some time every month or two to do something modest and self-contained.
Finally, writing about my projects serves a couple of goals. One goal is to widen their impact. Sometimes you build a useful thing that people can actually benefit from. Other times, the thing isn't so useful, but the ideas behind it may still be interesting. A second goal is to engage with more humans. I tend to hole up in my cave and build things, but it's useful to peer out into the blinding daylight from time to time and see what the other humans are doing. Maybe even to collaborate with them on things. I'd like to do a better job of getting myself out there and connecting with more people with overlapping interests.
So that's my plan for 2019. Please cajole me if I don't have any side projects or blog posts done after a couple of months. This fun isn't just going to have itself.