December Adventure 2024: A Reflection
December Adventure 2024 was a successful and fun project for me.
MyCmd
I made significant progress on the MyCmd project, including:
- I created 75 new commits.
- I finally got the work I was doing in the
rewrite
branch back to feature parity and created a pull request and then merged those changes into the main branch and wrote about this in this development log entry. This culminates nearly 18 months of effort on this rewrite. - Created several snapshots for use on my local development machine, with snapshot-r5-2024-12-28 being the latest.
Among all of these, highlights included:
- Realizing that I had implemented an Entity Component System with the MyCmd Registry for Command Groups and Commands.
- Adding in support for profiling MyCmd execution and generating flamegraphs, documented on Day 5 and Day 6.
- I made written plans in the MyCmd Planning org-mode document to track remaining work.
- I documented concepts and conventions in the MyCmd Concepts and Conventions document.
MyProject
I started a separate MyProject project to rewrite the mycmd/project Command Group from the MyCmd core into a separate application that depends on MyCmd.
- I created the myproject repository for this.
- I pushed 4 commits to this repository, creating a project skeleton and starting to document design decisions and plans for implementation.
Development Log
I published a development log entry every day of December documenting what I did each day.
I also published the following separate entries about MyCmd specifically:
Dot Files
I pushed 5 commits to my dotfiles repository with changes related to:
- Updating my Emacs configuration.
- Updating my personal MyCmd command groups and commands to work with my newly merged changes to MyCmd.
Janet Learning
I did start learning the Janet language, and created a new project, aspirations to learn it. I ran into a little challenge documented here. I got so engaged with the MyCmd work I didn’t get back to this, but I plan on it.
Lessons Learned
Incremental and testable changes, in interest of building and maintaining development momentum are essential for me, especially in light of my ADHD.
Writing prose is an essential part of my development process:
- Stream of consciousness style freewriting when figuring out how to implement what is next.
- Planning and design documents documenting the decisions made in freewriting.
- Reporting in my development log about my progress.
Related: working in the open is incredibly motivating.
Between sticking with December Adventure for every single day and the progress I made on MyCmd and MyProject by doing so (and the fact that I merged my
rewrite
branch intomain
), I know I can stick with a project long enough to build something I am proud of.
Because of all of these, I will continue to write here in my development log about my progress on MyCmd and MyProject. Going forward, I will allow myself to not stick to the every day schedule like with December Adventure, but on days that I do make changes, I will publish a development log entry to write about it.
All of my December Adventure 2024 posts will be linked from here.