💾 Archived View for d.moonfire.us › blog › 2018 › 07 › 13 › mfgames-tasks-v1.1.2 captured on 2023-06-14 at 16:19:26. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-04-26)
-=-=-=-=-=-=-
Earlier this year, I wrote[1] a tool to help me gather various assigned issues from GitLab[2] and GitHub[3]. Recently, we missed a dentist appointement and I decided to include the ability to pull in iCalendar records (specifically Google Calendar). I got it done (along with some patches) and published it.
1: /blog/2018/02/23/mfgames-tasks/
It was actually fairly easy to do, I spent most of the time refactoring the code to make it easier. Once I got that done, I found a couple of libraries on NPM that would parse and manage iCalendar. The next thing I knew it, I had it pulling in calendar entries.
The configuration is pretty simple:
sources: - id: household type: icalendar title: events / household sort: _000 for: 1 month url: https://calendar.google.com/path/basic.ics
The useful fields are:
When run, it generates a Markdown like:
# events / household - Payday {2018-07-16}
I'll preface this with “I'm not good at money management skills”. Tracking money? I love doing that, but there are too many variables and inconsistencies that make paying bills consistently hard for me. Having a kid in day care doesn't help.
To help that, I decided to extend the iCalendar feature to include a simple budget that I can put at the bottom of my notes file. The main thing is to let me know if I'm going to expect an overdraft.
sources: - id: budget type: icalendar-budget title: budget / household sort: zzz categories: - title: Until Payday dayOfMonth: [1, 16] - title: Next Month for: 1 month - title: Next Quarter for: 3 months - title: Per Paycheck for: 1 year avg: 24 # semi-monthly paychecks url: https://whichUrl
In the calendar, I have entries with titles like:
The system parses all of those (including repeating rules) and then combines them together into a notes section.
# budget / household - Until Payday (in 2 days): $-222.22 = 111.11 - 333.33 - Next Month: $-2,222.22 = 1,111.11 - 3,333.33 - Next Quarter: $-22,221.22 = 11,111.11 - 3,3333.33 - Per Paycheck: $111.00 = 444.44 - 333.33
Like before, the `sort` is used to jam it to the bottom.
Ideally, I'd get better at money management… but that will take a bit longer. I have a lot of bad habits to unlearn.
With this release, I decided to use some automated tools for development. One of them is conventional commits[4]. This is commit-line specification that tools can use to automatically build up a change log[5] to give something useful for users to read.
4: https://conventionalcommits.org/
5: https://gitlab.com/dmoonfire/mfgames-tasks-js-cli/blob/master/CHANGELOG.md
I know not a lot of people use my libraries, but learning to be more structured about development on my open-source software projects. It will also help with working on Author Intrusion[6] with the assumption that the project will get far bigger in the following years.
Of course, it probably won't stop the “push a version… found a bug in ten seconds, push another… then another” that I need to work on.
Overall, having a commit message format such as:
Isn't too hard, but the structure means that the change log will be automatically updated as part of the release. It also means I don't have to figure out version number[7] bumping.
I suspect I'll start doing this with novels also.
I wrote this in Typescript because I really like it as a scripting language and it has a nice ecosystem. Installation is pretty simple:
npm install --global mfgames-tasks-cli
Yeah, I still don't have a lot of documentation, just a single file.
Categories:
Tags:
Below are various useful links within this site and to related sites (not all have been converted over to Gemini).