What about this weather we’re having?
Ah well, at least the laws of equal exchange agree with exchanging screen time with fresh air.
But let’s discuss balancing tree structures.
Adding new nodes and branches is usually quite a straightforward operation. Most of the time you don’t have to do anything, the structure grows on its own. But without any kind of supervision or maintenance, it will grow into a random, hard to traverse mess that just wastes resources.
So it is important to either implement proper growing algorithems into the structure itself or do some manual pruning manualy.
Now, whether it be databases or file system structures, it is best practice to do the balancing operations at off peak activity times.
And if you’re developing custom algorithms, document them! Take good snapshots of before and after states for studying.
Just because nothing worth writing about is happening, doesn’t mean nothing is happening. Sometimes you just have to bear through the grind to reach a new point.
That does not mean you should completely abandon everything. Repetition keeps things in memory. So a post for the sake of the process of creating a post on this system.
So what have You done on this additional day of the year?
Continuing the previously discussed topic, of daring to be stupid for the sake of learning, sometimes you just have to do something for the sake of doing something.
So why not a fictional calendar with 17 months, with names based on subatomic particles? Why? Why not? And while we’re at it, let’s try out some of the current generation of generating tools.
Some interesting takeaways from this adventure, besides the calendar being useless for tracking anything useful, are as such. The number of months with 21 and 22 days switches depending on whether it’s a leap year or not (lazy day redistribution). And the image generation model used returned a spherical motive with a center and an outer ring always when the description contained a subatomic particle in one form or another.
Any way, here is the whole thing for anyone with too much time: Quantum Chronos 2024
The process of learning hurts. Physically! Just like working out. Anyone who says otherwise is lying! Just remember your math (or history) days in high school.
And just like working out, the experience gets easier with practice and even pleasurable with motivation. That lesson you have to figure out for yourself.
The path is one of feeling embarrassed. As in, I am embarrassed at how long it took me to run a process as another user under plan9. Let me explain.
I experimented with ramfs (to try and save on SD card life and maybe speed up some things) and everything that comes along with it (namespaces, permissions, sharing data between processes, …). Sensor data in “gizmos” is collected by the system owner, but the web server is run as an unprivileged user none. I could not read data from the web server. So, as necessity is the mother of invention, I managed to run the web server as a normal user set up for all things web. A year to figure how to do this since first failed attempts in the beginning and leaving everything on default. Probably because of an input error in the terminal. Now, with the developed rc history the iteration was less painful and produced success.
This allowed testing and setting up a new chain of scripts that read, save and process data in a shared memory. The result was about a half-second faster graph generation on the “gizmos” pages, since data was read from RAM instead of an SD card. For about 10 KB worth of text, not bad.
BUT, as I have found, that would increase the whole generation time by about five seconds, since now, the process had to be spawned as another user with a full namespace.
Back to beginning to figure out the proper way to define workspaces and not just quick fixing it by needlessly running an exposed process with a privileged user. It turns out, once you have a proper syntax-free command, the plan9 system is brilliant about these things. Once you know how to run commands in the same way or in the same configured environment as the system does for you, debugging is a cinch.
Of course, as with all interesting things, why would there be an example?! Yes, you can read the documentation, but all theory is slow to practical progress. Sometimes you just need to see the order of parameters for things to click.
So, for anyone finding this, an example of spawning a process with an unprivileged user with a specific namespace where you can then run and debug with printouts:
auth/as -d -n /bin/service/tcp80.namespace none #command or without for rc
Do you ever get that feeling, reading other people’s blogs or publications, that everything you do or write has to be new and different and contribute something new?
Let’s call this, for better or worse, content. If it’s not new, is it even valuable? To write or to read? Whose time is being wasted? Is it being wasted? Somehow, along the way to something, it was forgotten what practice is.
Sometimes you just have to get back to the basics to start up. You don’t begin a jam session by playing the latest hits, but by doing scales. You don’t play a game of wally ball by changing the local champions, but by stretching. And you don’t come back to civilization from an analog getaway by writing new algorithms, but by googling for basic HTML definitions!
It’s true that, as consumers, we care not for the process in between. Finished updates are the shiny drug. But as a techie, I miss progress updates, experiments and fails. Even a negative result is a result.
If nothing else, to feed the “dead internet” of bots, an update just for you:
- updated the (so called) Raspberry Pi 1 server to the new 9front release - (some things didn’t compile straight from the source, should really join a 9front community to debate these kinds of things)
- updated the tm1650fs, sgp30fs and bme680fs drivers to use the new I2C code in 9front - (this one was actually really painless; go to 9front contributors)
- updated the web page to pass the new Google Chrome Lighthouse checks with flying colors again - (no lie, had to google basic CSS to make it happy)
- updated the Second Chance Brotato mod - (legit forgot how to use Steam services or do Godot scripting)
Now bravely off to bigger and better things in this new year.
A journey of retrospective to acquire some perspective. And an opportunity for a lot of “specti-o” words.
How to achieve a perspective change? Distance! Be it mental or physical, in time or space. Most of the time, intertwined between all possible modes.
When you change your perspective to see the universe differently, the universe looks differently at you in return.