MfGames Tasks v1.1.2

Up a Level

Previous

Next

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/

2: https://gitlab.com/

3: https://github.com/

Calendars

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


Budgeting

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


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.

Development

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.

6: /tags/author-intrusion/

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.

7: https://semver.org/

I suspect I'll start doing this with novels also.

Installation

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

Documentation

Yeah, I still don't have a lot of documentation, just a single file.

GitLab

NPM

Metadata

Categories:

Programming

Tags:

MfGames Tasks

Footer

Below are various useful links within this site and to related sites (not all have been converted over to Gemini).

Contact

Biography

Bibliography

Fiction

Fedran

Coding

Categories

Tags

Privacy

Colophon

https://d.moonfire.us/blog/2018/07/13/mfgames-tasks-v1.1.2/