#+SETUPFILE: ../../../template/level-2.org
#+TITLE: State of the projects
#+DATE: <2021-07-04 Sun 10:24>
#+AUTHOR: vaeringjar
#+EMAIL: vaeringjar@land
#+DESCRIPTION: This is what I'm up to these days.
#+KEYWORDS: state-of-the-projects architecture design
#+OPTIONS: toc:auto


* Updates

- I update the name of this post after I originally published it to
  something more meaningful.
- I added a note about not reviewing my dotfiles.


* Firstly, the wetware

When I see the word "antimalware" at work I always think about
"animalware" and Animal the muppet.

My area has returned to saner temperatures. I feel like I still need
some recovery. The local lawmakers have banned fireworks for the
season.

That said, the last few weeks I haven't had much energy. This
definitely goes way back. The last year since the pandemic my day job
has mostly become more demanding. We've piled on more and more
projects. I do my best to write good code and to leave things better
than I found them. But because I often end up needing to work so much,
it means I still fail. I do not get overtime pay...

All of that said, I feel like I need to do a little overview of the
state of the code. Most of the my projects have fallen behind.

I have had the energy to listen to several clean code/TDD lectures from
Uncle Bob. It has been a good reminder of the things I studied in my
grad program. This, including all the spaghetti code I've worked on
over the last two years, I've decided that plugin architecture with
TDD using SOLID and DRY principles are the only way to go.


* Active projects

Aside from my blog and 3d printing, I have several code repos. I either
actively use or have specific plans for these projects. I'll skip the
dotfiles and subdotfiles (eg emacs and mutt) for now.


** Fenris Punk

I still have so much on paper, but at least I only have one notepad,
as of a couple months ago. Mostly maps information. The project has
multiple aspects to it. The rules, the story, and recording the
playtests and using those to address issues with the rules. I've
fallen behind on all counts.

The ascii to png renderer needs some work. I had some momentum behind
it around the end of April and beginning of May, but it's fallen
behind like all the rest. The death of Near makes me want to continue
working on this because I took some inspiration from the SNES
emulation scene, indirectly such as how to store graphics.


** MED

This project includes several moving parts that I should probably turn
into a monorepo. An enterprise web app used with SSO,
drop-in/replaceable front-ends, non-complicated style with minimal
dependencies. So many moving parts... I don't feel like going over it
all right now, except to say there are some testing and architectural
decisions I made last year when I originally made it as a demo for
students that I don't think I want to keep. I originally built this to
demo for groups of students to build upon, extend, or take over, but
in the end the students built something else and I kept working on
this instead. Or rather, these instead.


** peers

I mostly need to turn the peers website into a well-formed package
with knowledge of how to create a venv, so developers can just run
it. I might migrate the jams and project ideas in as pages or blog
posts. I might also move the template back into the main project so it
only has one peers-related dependency.

- jams and project ideas
- main web site and pelican template


** drek

I don't think I've shared this project yet anywhere... I originally
created this one as a python-based set of tools concerned with secrets
management and backup. For example I have a backup tool for my keys
and pass vault.


** code-examples

I recently added a C example for converting a double to well-formed
localized string because of something I saw at work. I wanted to think
of a better way to implement it. But please don't ever use doubles to
store money...

Anyway, I originally created this project to house specific coding
ideas, but I think I'll turn it into a monolith for preliminary coding
ideas. That said, I'll probably migrate some of my dormant repos such
as these into it:

- mfws-fe
- emacs-scripts
- import-og-query
- and api-public-information

I think I might rename this repo too and use it for kicking off all my
work from now on, kind of like a counterpart to this very blog.


** static-site-generator

My custom ssg based on org-mode works just fine, but it clearly has
two issues that I know how to fix, but they've fallen on the
back burner.

1. Only one instance can run at a time.
2. Only knows how to run projects in a statically defined child
   directory.


* Dormant projects

I mentioned above that some projects I want to migrate into
code-examples. I have a few others that were fun to experiment with
that I may or may not migrate. Others are significant, but that I have
lost the reason to keep working on them. I'll talk about just a few.


** ttrpg-character-generator

This elm project wasn't really ever any good. I mostly fiddled with it
as a way to learn more about elm off the clock so I could apply that
knowledge to my day job without actually working on the day job
task. No overtime, remember?


** peers-identity

I wrote this originally as a way to learn starlette. Same no-overtime
context as ttrpg-character-generator. It's concerned too much with
details such as the framework and database and not the actual use
cases.


** orbitaldrydock

This csharp project I worked on at a meetup a while back. I don't have
any plans to keep it maintained, but maybe I'll return to it someday.


** securemailbox

I think about this one all the time, but right now I just don't need
it for anything. These three repos came from another college student
collaboration. They did an awesome job. They definitely belong in the
top three capstone groups I've sponsored/TA'ed. I've reused some of
the ideas, though I never deployed this because the organization
related to it went under last year. Both the api and cli repos have
some great work in them. Though, I think they're both too coupled with
flask and postgres. Again, "the details" not the use cases. Some
re-arch/re-design could turn these into an awesome tool. I never used
the demo...


** id.ly

Last but not least, this project also involved a capstone project for
the same folks as securemailbox. These students definitely were the
top group I have ever worked with. They built a react-native app to
exchange public keys and encrypt messages. The idea was to build
something that did not require a blockchain, contrast to uPort or
compare with IRMA.

Sadly, after they stopped working on the project and I took over, the
target users decided not to use this project at all. I spent another
two months cleaning up the code and refining the build process, but I
could never get anyone else to start using it, let alone to give me
feedback. I also couldn't get anyone else to contribute to the
project. So now this project has gone stale for three years. All of
that said, it had two remaining issues at the time when I stopped
working on it. I felt disappointed and ultimately decided to work on
some kind of entertainment-related project instead (eventually what
became Fenris Punk).

1. Users needed to be in person to init communications.
2. It had knowledge of a server side bouncer for messages instead of
   true message integration.


** self-sovereign-id

For the same target audience as securemailbox but also for the same
reason as peers-identity, I hammered on this project for a while just
to fiddle around with routes and components in the framework. It has
some features that I took from id.ly just so I could give it a
purpose. I have better code in MED, now. I don't plan on working on
this project anymore.
