This is where I put all the things I've created myself which I hope may somehow be useful to others.
Myself in that I've taken the time to engineer and understand the functionality behind the deliverables.
All software on these pages is released under the GNU General Public License (v3), unless otherwise noted.
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.
An old Minecraft Overviewer (RIP) installation of mine had an issue trying to render a non overworld (nether/end) as of late, all of the tiles would be made and the process would complete without error. Yet, when you go to view the world in the browser you are met with an uninitialized screen (grey not black) and none of the javascript (leaflet) starting...
You would get this in the browser console (for the leaflet.js script),
Uncaught Error: Invalid LatLng object: (NaN, NaN)
So, knowing zilch about leaflet, apart that it was a replacement for google maps API when it became closed, I starting taking stabs.
Perhaps the initializing coordinate that the overviewer rendering process feeds leaflet was missing or incorrect (NaN)!
This felt like a time sink, nevertheless I pushed forward and eventually located a file, "overviewerConfig.js" which held a bunch of map-like structures which I surmised loaded the initial state of the map(s) into the leaflet engine.
What caught my eye under the "tilesets" section was an entity labelled "spawn", wich was set to "spawn":"false".
Upon comparing it to a "working" output of overviewer I realized that it should be set to the spawn coordinates, and roughly corresponds to where the overviewer starts out when you first open the map. So it was totally reasonable that mine was now failing for the nether/end maps, as theres no 'spawn' for either of them.
Simply Setting it to : "spawn" : [0,0,0] solved it.