“What I mean is that if you really want to understand something, the best way is to try and
explain it to someone else. That forces you to sort it out in your mind. And the more slow and dim-witted your pupil, the
more you have to break things down into more and more simple ideas. And that’s really the essence of programming. By the
time you've sorted out a complicated idea into little steps that even a stupid machine can deal with, you've learned something
about it yourself.”
—Douglas Adams, Dirk Gently's Holistic Detective Agency (1987)
June 2020
And then the world ended.
Well, here we are, halfway through the year, and the MUD is feeling neglected. Because of course the pandemic isolation is an opportunity to be super-productive, one which I somehow haven't managed to seize upon. I'm still alive, still working, and hardly a day goes by that I don't feel guilty about letting the MUD languish in development limbo.
I have completed one project since the start of the year. At my job, we use Ruby on Rails, and have chosen Vue.js as our front-end framework. Now, I have never been a Javascript guy, but as a senior developer, I felt a strong professional obligation to learn Vue. I started writing simple components in Vue, and over time, ended up with a really neat single-page application: 650Vue, a simulated 6502-based computer built in Vue and running in the browser. Writing a simulator is a little more forgiving than writing an emulator, but the process is still fascinating. At some point, I should document this development process, because there are some instructive moments in the source code.
Honestly, it's nice to have one project—any project—in a completed "v1" state. 650Vue continues to eat most of my free time, but I do hope to get back to work on my Tierceron Construction Set before the end of the year.
September 2020
I got a bit of good news this summer: after a 15-year absence, one of our original immortal staff managed to get ahold of me. We'd each tried to connect numerous times over the years, resulting in several frustrating near-misses, but luckily this time appears to have stuck. Even better, he's feeling the urge to build again, which brings me back to the incomplete Tierceron Construction Set. I'd hoped to have the build tools ready before resuming building on the MUD, but at least this gives me an incentive to add additional functionality to TCS.
Resuming work on a project after a year is not easy, because you can forget critical information, leaving you with a lot of questions to answer. Where are the repositories hosted? Where is the project management hosted? How do I get to my Heroku dashboard? Where do I find the production app? The local? (Bookmarks are helpful for these.) What are my login credentials for all these sites? (Consider a password manager.)
Just as important as "where do I find stuff" is "how do I do stuff". How do I handle pull requests, merges, and releases on GitHub? How do I deploy new code to Heroku, or open a remote Rails console, or backup a database? How do I set up a new builder account on TCS? How do I transfer data from TCS to the MUD and back again? How do I update my release notes on this website?
The answer to all of these is simple: document your processes and standards. Treat your hobby projects with the same degree of rigour you apply to your professional projects, and you'll never find yourself frantically searching for a password on some random sticky note or trying to figure out what the heck you were thinking last year.