About

This is where I put all the things I've created which I hope may somehow be useful to others.


Statement

I believe in modular, purpose-built software. The more freely a program or library can be adapted and joined to other software the better. This of course begs the question of interoperability, documentation and cooperation amongst developers, and is why I am a sharp proponent of free software. I cannot stress how important it is, not simply just for myself (in that regard I find it to be an unparalleled educational tool), but rather for humanity as a whole. It is the actualization of creating software without constraints of intellectual ownership/micromanagement.

I have a strong interest in distributed software systems, especially favoring self-healing networks and distributed data structures and associated techniques. Beyond that I prefer to create purpose-built, practical use applications in a variety of languages. Practical in that their sole use isn't to pad a resume, but rather be of some use to others now and in the future beyond direct use even, either for design ideas or coding practices. Being able to riddle off a list of intangibles for the sole purpose of creating a list reeks of convenience, if nothing else. Above all else, I would hope what I have created can be of some use to people, even if only pedagogical.

In retrospect, I have since come to understand that I am a very design-driven developer, perhaps even over designing at times. A vast majority of my effort is prepaid out beforehand designing multiple approaches and ideas. Generally this pays off since perfect information about the task at hand rarely exists (so much for SCRUM), and I'd rather fall back on a secondary design than have to re-design again on the fly. Over-designing also helps the implementation in terms of knowing what you'll expect out of certain parts of the program. Despite modern languages offering an over-abundance of higher-order constructs, I honestly don't believe in their liberal use, ie. Php's magic methods. Most of the highly extrapolated capabilities of modern languages are more reliably implemented by means of lower level controls. Illustratively, one could implement an alternative, and more highly-tailored form of reflection in any language that doesn't support it by means of status accessor methods. Judgment calls will inescapably need to be made about any design decision and in some cases these constructs can be indispensable, however a rush to be highly reflexive/dynamic isn't always the best approach, as readability can suffer.



PSA Mikrotik
Feb 18, 2023

From what I've witnessded firsthand, and what is easily digestable if one were to seek out "Mikrotik" and "Power Supply Problem". Mikrotik has systemic, low qualtiy issues with a vast number of its power supplies which accompany various Routerboards. I've recently had a 10 year old RB2011 UiAS-RM's 12v supply completely fail, after a few years of needing to reboot the device due to undiagnosed crashes. More recently an RB 750 GR3's 24v supply has been suspected to have been the cause of spurious hadware issues. Most specifically dropped ethernet frames after some noisy, re-occurring power event. After which it continues to erroneously drop traffic until rebooted. The jury is actually still out on the last one but after its replacement, the device has become solid for several weeks.

This is not to say that wallwarts need last indefinately, rather, after having several dozen of them over the years and the only two to go are the ones mentioned above, it becomes obvious the devices are less than reliable and should be considered in need of replacement if one is to by a new Routerboard.