I figured it would be interesting to write these down, and see how well I do (or don’t do, as it were).
Resume a consistent exercise schedule
I de-prioritized running to focus on other things in 2024; mainly reading and completing Advent of Code. I’m usually happier if I can find the time to run two to three times a week. I don’t think this necessarily needs to be running; if this were a nice 45 minute walk every other day I think I’d be just as happy.
Read 30 books (again)
I read > 30 books last year, mainly newer science fiction / fantasy. To read thirty books I will need to do a little over two per month which seems fairly realistic. (During my “high periods” in October/November I was finishing 2-3 books a week.) Inevitably work gets busy, Cora gets sick, or I get interested in something else, so thirty books also seems like a somewhat lenient goal. (However, I have vaguely commited to getting caught up on The Stormlight Archive.)
More Cross-Stitch
I began cross-stiching last year to do a Christmas ornament for Cora, following something my mom did for me and my brothers growing up. I lost steam in January (consumed by Advent of Code) but was able to do two ornaments this year. I enjoy it; it’s fiddly stuff and requires me to use my hands to create something physical, a bit different from any of my other hobbies. The main thing I need is more practice.
Four blog posts
Let’s try to write four unique things for my blog (no, this doesn’t count). Tech-focused, personal-focused, whatever. It’d be great if some of this spilled over into my work blog, which I’d also like to update more.
Learn Rust
Working through Advent of Code last year really improved my skills in Clojure. The last new language I really learned was Go in 2013. While I’ve deepend my understanding of JavaScript, Perl, Java, and Python in the last ten years, I’d like to learn a “better C++” as there are times I really enjoy operating at that level of abstraction.
Some ideas for implementation:
- Ray Tracing in a Weekend - Creative Commons ray tracing books; I did some of this in undergrad.
- Crafting Interpreters - I bought this book last year; I certainly did enough of this programming in undergrad/graduate school, but it’d be nice to revisit the area.
- LC3 VM / Synacor Challenge / UM - virtual machines that’d be fun to implement. I’ve already implemented UM in Clojure as a mess of Java array interop, and it’d be great to see what it looks like in Rust.
I don’t need to be an expert in it by the end of the year, but I would like to say, “yeah, this is a language I know”.
Find a new personal hobby project
I’d like another programming project to occupy me certain nights / weekends. Advent of Code reminded me how wonderful having a project like this was. It’s not going to be something I can do all the time, but it is something that I’d like to have as part of my hobby rotation.
My last personal hobby project was my re-built chess engine Ra, a rewrite of my grad school chess engine Apep. I rewrote Ra because I felt like Apep had too much copy/paste from Crafty, I wanted to try a different board representation (10x12 instead of pure bitboards), I felt like Apep crashed too much, and I wanted to learn Go better. A few years later, I’ve accomplished all those goals. Ra is incomplete in the sense that it still is not very smart about what a good chess position is, but Stockfish sets a high bar, and I’m not too interested in continuing the project much beyond the goals I’ve already accomplished.
When I think of my own experiences as a small child watching my dad program I could tell there was something interesting there, and I’d love a way to connect this hobby of mine with Cora when she get a little older. Unfortunately a lot of my interests end up being fairly abstract. I won’t really know what my next hobby project is without exploring (why did I even want to program computer chess in the first place back in grad school?). I hope over the next year I can find something that can turn into a 2-3 year project for more occasional hacking.