"What Am I Doing: January 2023"

2023-01-01

I think I will start each month with filling out the list of things I could do and then just change it month by month.

As I wait for things to settle, I am going to get through some ideas that I have had, which I am pulling over from December.

Stuff to do

A project I published

I worked on something for work that I never really fully used. It is a way to match documentation with executable scripts, tying MkDocs into it to make it navigable and searchable. It is nice to use, but I never really got far with it. I cleaned it up a bit and made it into a public git repo: https://gitlab.com/bolsen80/snippets. Basically, I can look up something using a search string on a command line and then get a result back of matching snippets that I can just run. I would generate scripts for myself to write the snippets, to make the workflow quick and easy for me. The scripts generated are shell scripts, but the system is really language-agnostic.

I am doing this because this month, I might build it out more to serve my goal of the "personal knowledge" project. Some of the things I do in it could actually be related.

Work on the static site generator

I decided to pick up my site generator again. I organized it a bit, created a nice CLI interface for it and did a lot of cleanup. I gave it a name: "maser" - to "mas" is to nag in Norwegian or as I remember growing up, to "babble nonsense" a lot.

Here is the GitLab repo: https://gitlab.com/bolsen80/maser. Since I wrote this for myself, I don't expect this to be anything more than my own thing to build this site and maybe a couple other sites for myself.

I did a bit of a refactor, fixed bugs, etc. One important thing is removing a lot of file accesses for the same files. The results were impressive, even if it doesn't do a lot of work. So this is basically a 58% performance improvement just not opening the same files so much:

 (maser) ➜  brian time mas build
 mas build  0,29s user 0,03s system 100% cpu 0,326 total
 (maser) ➜  brian time python ../build.py
 python ../build.py  0,75s user 0,04s system 100% cpu 0,789 total

I found some bugs:

  1. the generated tag pages are linking to articles incorrectly (Fixed!)
  2. the posts I am making are not sorting right (Fixed!)
I also want to add:

  1. add a front matter key to list updates and related anchors.
  2. create a python package and executable (Done!)
  3. get it on gitlab. (It's not because anyone would use it, it's just stuff for the "portfolio") (Done!)
  4. My own deploy script should use rsyncing instead of using scp. It's annoying that it is a little slow as this grows more.
  5. Improve the new project generator with basic templates
I also need to work on the visual design of this blog:

  1. Improve the spacing (Done!)
  2. Add a little more color :) (Done - now has a black title bar!)

Hack together an analytics solution

I mentioned this last month I want to run something to do some form of analytics without Google Analytics. I found this blog post encouraging: [https://github.com/leandromoreira/cdn-up-and-running](https://github.com/leandromoreira/cdn-up-and-running). I might use this as a guide for implementing my own need.

Start implementing my toy p2p messenger

Last month I mentioned I was going to make a UDP server in Netty. It applies to this project and I am going to fumble my way also through implementing just enough of [https://en.wikipedia.org/wiki/Kademlia](Kademlia) before admitting that I should just use a well-tested library.

Start a "personal knowledge" project

I had this idea for awhile. I have a lot of things to organize, but have been unhappy on how I would deliver the user experience to myself and my wife for this information. This is also a chance to write an application, possibly using Jetty with servlets or JSP and using [https://htmx.org/](htmx) on the web pages. I want to:

  1. Add taggable notes on certain topics,
  2. Make the notes full-text searchable (I will not start with like ElasticSearch or something - sqlite has full-text search ...)
  3. Make it easy to make notes "actionable" (I have no clue what this means)

In: programming what_i_am_doing