I do alot of projects in my own time. A new technology catches my eye, and I will want to delve into it, or see if I can make it do a specific thing. More often than not, the projects are work related and morph into some tool or application that I create for work. Which is a pretty good deal for my employer.
This time around, I have been building something for myself.
For a while now, I have wanted to track spending, health, how much I am smoking, drinking (tea, water, energy drinks, etc). Whenever I am working on anything, I tend to become, erm, focused. Other descriptions I have heard over the years include tunnel vision, obsessive, workaholic and a few others I won’t mention.
A while ago, I started on “Axionite”. It is currently in v1.2, which I consider to be beta 2. And I am actively using it to track stuff. It runs on a NodeJS stack, Mongo NOSQL database, with data cached in LocalStorage in the browser. I considered getting my head around React, but decided for the moment to stick with Jquery, Material IO and a few other libraries.
The basic idea is that you can configure what you want to track, then use the application to track, review and report on the data.
This has highlighted some areas that need a little more work. JavaScript is typically single threaded, the user interface (clicks, scrolling, page updates, etc) all happen on the same thread as any computational work. There is support for async work, calls to server APIs are asynchronous and traditionally handled by supplying callback functions for when the server returns the data.
In the past few years, support has been implemented in most browsers for promises and web workers, the former adds better support for async functions and the latter allows for a separate “worker thread” to be used for the heavy lifting.
These are things for beta 3, along with improvements in the web design and reporting.
Will it turn into a commercial product? I’m not sure. For now, I am using it to track stuff, as are a few friends and colleagues, and to wrap my head around a few new things. For the moment, here are a couple more screenshots of beta 2.