I’ve been doing this goals thing for half a decade at this point. Usually I just pick a few things on my mind around the time of writing these posts, but this time I thought I’d start by reviewing the results so far and maybe using that as inspiration. Well, after compiling the list of unaddressed goals, I realized I didn’t care about most of them, so I’m largely back to what’s on my mind after all. :D
This year I’m categorizing the goals with more intent and specificity than before. I’ll be figuring out how to manage my time to actually accomplish something notable, and I wonder if said categorization and specificity might help.
1. Writing: Publish Four Featured Posts
One could read this as a rehash of “write every week” from 2017 and “write more” from 2019, but there’s been a different twist each time.
In 2017 I wanted to build consistent habits, and it didn’t happen to the extent stated, but I remember it resulting in some progress. In 2019 I wanted to build on these habits, and it happened in some unexpected ways, with journaling complemeting the intended increase in blogging.
This time around I want to put some extra emphasis on the quality of what I publish. A ton of gibberish isn’t at all what I want my output to be, and I already sometimes feel like that’s the case.
2. Reading: Read at Least Two Books About Software
This is a reprise of “read some tech books” from 2019, and I’m 100% OK with that. I have entirely too many books I haven’t (yet) read. I know that’s a rather common thing, but I don’t really care—it still bothers me.
Of all those books, five are related to software:
- Cracking the Coding Interview by Gayle Laakmann McDowell
- Exercises in Programming Style (1st Edition) by Cristina Videira Lopes
- Fluent Python by Luciano Ramalho
- Python Testing with pytest by Brian Okken
- Two Scoops of Django 1.11 by Daniel and Audrey Feldroy
I’ve referenced Two Scoops and Python Testing while working with Django and pytest, respectively, but the other three have just sat around since I bought them. That’s a damn shame since they’re great books, so I’m going to try and work through at least two of them, and I’ve already started with Fluent Python.
No promises about whether I’ll buy more throughout the year…
3. Software: Project Housekeeping
I have a few software projects I at least somewhat maintain. Some are open source and others aren’t, but they require and deserve more love than I usually give them. In an attempt to avoid frivolously adding even more to my plate, I want to focus on the three I feel are in direst need.
a. Launch Microblot v1
Microblot is a somewhat major project I started this summer. It’s a Slack bot for microblogging and tentatively already works.
I started the project during a week-long staycation in June, and have tinkered with it only a little bit on rare occasions since. I want to build a launchable MVP, which shouldn’t be too much more work. It’s just the last 10%—how hard could that be? (Famous last words, I know.)
b. Launch Starminder v2
Starminder is still alive and well, but its dependencies are pretty out of date at this point. Unfortunately, simply bumping up version numbers is a no-go, as there are some major changes, and I want to use this opportunity to launch something a little better.
My initial plan was to rewrite it in Django, since I think standardizing on it for side projects might lessen the overall maintenance burden. That said, given how minimal the actual product itself is, I’ve been trying to come up with a different way of architecting it, which is part of why it’s been delayed.
c. Publish Parsenvy v3
I initially wondered if the Parsenvy major version bump is even worthy of being called out like this, but given how long v3 has been in progress, I think it is.
It’s a somewhat exploratory project, since v2 is feature complete and could just use tests and docs to be good enough, but I think what I’ve been working on for v3 is a sufficient improvement to warrant the effort. Additionally, I’m adding tests, docs, CI, and possibly even CD to PyPI.
It’s not a particularly glamorous project any more, but I do use it in production in a few places, so it’s important—arguably more than any other project of mine.
d. Rebuild nkantar.com
This one is for the soul. I treat my site as a playground of sorts, occasionally redoing the backend or frontend for fun and learning, but sometimes I actually have some concrete reasons.
It’s currently a mix of corvid and custom code, which means I don’t get the full benefits of avoiding maintenance by using a third-party tool or flexibility of a custom solution—the worst of both worlds.
What I want it to be is a custom thing of its own that does exactly what I want and nothing more. For this reason it’s not particularly likely to end up as an open source project, since I don’t think there’d be enough value gained by anyone to warrant the effort I’d have to continually invest. I’d like to think I learned some lessons from Autohook.
In addition to doing essentially what corvid does, I want the toolchain to support the following:
Because I can’t simply redo the technical underpinnings and not touch the content, I want to invest a bit more into rethinking some of the existing pages (e.g., Projects) and maybe even adding new ones. And because that’s obviously still not enough, I want to revisit the redesign I completed for the never-launched Django version I made in 2019. It’s not a drastic one, but it did clean up the layout and typography some.
The astute reader may notice a glaring absence of any abstract or learning-focused goals from this year’s list. As I alluded to at the beginning, this is intentional, and I have reasons for omitting both.
Abstract goals from the past—such as “explore a new sphere within software” from 2020—lend themselves incredibly well to non-completion. Compounded by my tendency to take a set-it-and-forget-it approach to this, it’s been rather easy for me to find myself at the end of the year genuinely wondering whether I accomplished them or not. Being very specific should allow me to guide how I spend my free time in service of making progress when I choose to do so.
Learning goals have proven to be largely useless. I’ve actually managed to knock out a few, but entirely by accident, and sometimes in another year! In 2016 I learned Vimscript while writing a Vim plugin, and realized that while writing the review. In 2017 I wanted to learn to touch type, but actually did it in 2019, when I started using an ErgoDox EZ. Almost every other year I set out to learn something and it didn’t happen, while I’ve always learned plenty of other things. It sure seems like planning learning hasn’t had any real effect on it for me. Recognizing this, I’ve decided to let go of that notion and allow myself to learn how I do best anyway: organically as needed for work and/or fun.
All in all, I’m v. excited for 2021. 2020 has been challenging in many ways, and none of its problems will go away just because of the date change, but I feel invigorated by the occasion nonetheless. And that’s enough for me.