Awesome. Appreciate you checking it out. Would love to get some feedback when you get around to trying it.
I’ve been on a bit more extended hiatus than I had originally planned, but I did want to check back in and give a brief update.
I don’t have any code or feature updates, sadly, but there should be some more coming soon (fingers crossed). I’m finished with the move and I’m slowly unpacking and organizing to try to get everything settled. My office is a wreck, and there’s a lot to do in there before it’ll be the code haven I want it to be.
Then I got COVID in the middle of the move and I’m recovering from that now.
As far as FLEM updates: I’ve settled on what I’m going to tackle next. As I said in my last update, it’s pretty stable right now, and I feel that it’s in a pretty good place from a core functionality standpoint. I’ve been running it with the service pretty non-stop, and I’ve only seen one instance where there was a bug (matrix stopped updating and went to sleep). I didn’t have time to diagnose, and I foolishly didn’t have the file logging enabled. I’m going to enable that so I can do some diagnosis if it happens again.
-
I’m going to add some extra configuration options that are primarily going to take the place of the command line arguments. When it’s running as a service, the arguments can be specified (as a part of the command that the service runs), but it requires you to modify the service unit file. I don’t want to have to do that, so I’m going to add a few more top level fields to the configuration to specify log level, writing to log file, etc…
-
The first task should be a pretty quick chore. Once that’s done, I’m going to start working on user created modules. I think this makes the most sense since it’ll add to the flexibility of the tool. I was originally going to work on trigger events, but I think that’s a narrower use case. This also gives me the excuse to really clean up my API and write the documentation that I need. As a part of this, I’ll probably also set up readthedocs as I’m updating my documentation.
Essentially, the plan for user created modules is to add another directory in the .flem
directory where users can add their .py
files. Once they’re added there, FLEM will be able to search that directory similarly to what it does now for the dynamic loading of modules.
The idea is that anyone can now add and share modules with the community without having to do a PR to the main project. There’s a couple hurdles there that I’m still debating how to handle.
- Configuration
I’ve got the base configuration set up so that it’s extensible (via the arguments property), so it’s definitely possible to add additional configuration options to a user created module. The pattern I’ve established with the pre built modules is “typed” configurations. I’ve done this just so I can verify the configuration at run time and have better checking of the configuration of the modules. I’m not sure how I want to (or if I want to) handle this for user created modules. I’ll do some more noodling around this and hopefully come up with a plan
- Security
Obviously, any time you have code that’s being contributed from the internet, there’s a risk of bad actors and malicious code. I don’t believe that within this community and for something this niche, there’s going to be sufficient motivation for any bad actors to make a bad module. However, it’s a non-zero chance, so it’s something I want to consider. If you’re writing your own module, obviously, you trust it, but if you snag someone else’s module, you can’t inherently trust what it’s doing unless you read the code.
I’ve been thinking about doing some sort of static analysis at a minimum just to look for any potentially risky operations, but I don’t know if the juice is worth the squeeze at this stage in the development cycle. It is on my mind, though, and if this starts taking off, I’ll definitely revisit this topic.
One final update (and I’m going to add this to the readme just as soon as I’m feeling less sick) is that NVTOP has merged my PR, and there’s a new version you can install if you’re interested in using the GPU Modules. Check out the release! Release Release 3.2.0 · Syllo/nvtop · GitHub
It’s pretty exciting because there’s now a way for folks to install this and have the full functionality out of the box.
Anyway, that’s the update. Not a huge update, but the project is still alive, and I’m still thinking about it a lot. Hopefully I’ll be back to pushing regular updates sometime next week.
Have a great week and stay healthy out there