nya! Devlog 0

Last week, I mentioned a project I was starting called “nya! - nginx: Your Analytics.” I started work on it this week, but not before recruiting a few of my peers to get a team together for some help. This week was mainly just a lot of orientation and then just barely starting to build our codebase.

The first thing I did as a project lead was to get a development timeline going. This is the current development timeline that we’re working with:

Last weekend, I got teams together. On Monday and Tuesday, I gave the individual teams their briefings so that they understood the project, the end goal, and where they each fit in. We’re currently divided into three sub-groups: the daemon team, the analytics engine team, and the visualization engine time.

I’m currently working solo on the daemon, the core component of the project which will run on an nginx server and maintain a manageable collection of relevant data in a time/space-efficient manner. Afterwards, I will join the analytics engine team to begin building the engine that will be processing the data generated by the daemon. The visualization engine team has already gotten started writing a framework for us to import our analytical data and generate digests and graphical data over time.

Good stuff happening! I’ve gotten a lot of progress and am making optimizations wherever I can. For example, I’ve figured out how to achieve random access of any line in a text file of variable-length lines. That is to say that any line can be accessed in O(1) time. This will massively speed up file access operations. I’m also using lookup tables with serial IDs and reverse IDs (AVL lookup IDs) to reduce space of the data in storage. I did the math and this can be expected to be over 80% more space-efficient!

I got my first dose of the Moderna COVID-19 vaccine today so I might have to rest for a bit before getting back on this, but this has been a lot of fun so far!

Happy hacking!