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.



CrowdStruck
Jul 20, 2024

Alas, for some time now I was looking for a sign. A harbringer of things to come. Something, at least tangentially related to the sad phenomenon I am witness to recently of the growing indignation surrounding C-suite management and engineering. I totally understand it. There are things that get under people's skin. The first being that we all want returns on our investments, or rather talents. It is this last bit which is causing inter-class grief in the twenty-first century. For years, tech has led, engineering and developers no less. With management a short armslength behind, dare I say even in the most conservative of companies. Things were new, and management was obviously in the dark, admitting it nontheless. Ossification has had its course though, especially as of late, and the overconfidence of a new generation has, I think, led them into a new era of blind hubris. Although they are aiming for survival, the reality is that unnecessary complexity and homogenization has surged in the latest years, by leaps and bounds as a result. Now more than ever, wisdom is necessary, and the necessity of cooperation between technical experts and big-picture thinkers is needed. Without it more events like yesterday will occur.

The main issues with yesterday's occurrence are two fold. The first being that Microsoft, and CrowdStrike, are both technically held to blame. Microsoft is, for having a facility in its OS, be it kernel-mode drivers inserts or whatever the case which allowed a terminal condition during os bootstrapping. This is a tough call though, since if you let 'helpers' swing the hammer during the construction of your house, you can't, rightly be surprised if SOMETHING comes out crooked, or worst still, if it collapses. This is the unwritten agreement problem between MS and its kernel developers. Its been this way since forever, and I understand it affects any 2-party situation when tech+policy come together. What I'm very dissapointed with is how a company who can find the time to endlessly refresh the Windows desktop and peer into our telemetry like never before with AI and other time consuming projects, can NOT at the very least have some sort of auto driver rollback feature if it detects a new driver has crashed the system repeatedly on boot up. Again, there just must've not been enough time in the day for that project. I would've gladly taken it up.

Crowdstrike, on the other side is, without a doubt the main shoulderer of any blame here. They. Obviously. Didn't. Test. It. Theres not much more to say. On the ethicality of thier systems, which are arguably spyware, one can't really hold them to task as they are simply filling a market 'need'. Whether the need be ethical, which it is not, is irrelevant. There is, in fact, an entire ecosystem surrounding systems such as theese which I've had to personally 'deal' with while working for several companies in the past. They are, without a doubt, almost always a scourge and don't serve the empolyee in any way or form. However they are a 'requirement' by our last group, management, who through thier ignorance and hubris have ever-growingly allowed the scope of theese systems to creep into every facet of modern machinery.

Most strikingly this last part, which stands out from the technical failings of the first two culprits, is actually a failure of those in power to see the shortcommings of that which they dictate, most specifically because they inherently lack the ability to understand the failure modes. Windows, should not be running on forklifts, fullstop. I don't care what your ideas are. The opening-up of huge classes of unrelated medical machinery, heavy equipment, airport kiosks, and the like to the desktop operating systems of today, especially be it WINDOWS is unnaceptable, even if it be Windows Embedded. They should not be on such a system requiring irrecoverable update cycles of this frequency. Bewilderment was the takeaway from alot of engineering-minded people as well when they learned of this crucial facet. I can recall in the Deepwater Horizon film, seeing WinXP on the drilling machines. Reality is very much this, sadly, and more. It seems without competent engineers who have the authority to object, familiar systems are seen as 'acceptable' when used to control things many orders of magnatude simpler. The negatives, like an expanded attack surface, and tie-ins to corporate spyware agent platforms aren't even considered. There needs to be a third option. An extensible, purpose built, reskinnable, and dare I say minimalist OS for machine control, which ISN'T directly internet connected and beholden to constant keystone updates which could and do bring down the entire fleet. Remember, diversity is our strength right? But this of course requires more muscle and authority from engineering, and certainly more competent boots on the ground. The last of which is not going to happen in our current ecosystem and corporate mindset where one-size-fits-all-control-and-monitor-everything is the mantra. Theese software platforms are choosen by people who have little-to-zero actual understanding of what hazards they impart on systems and are only fed what compliance checkboxes they can now tick once they sign up thier organization. Yet another security theatre of a different kind.

For my future predictions, expect more of the same, in addition to the slow circling of the drain that technology has become even when it IS working. Where nuance would flourish, expect commoditization, homogenization, and aggregation to dominate like the gorilla they are. Responsibility, oh thats in there too, or at least to remind us of what we don't get, any responsibility to strive for more appropriate solutions. None at all.