@2019-06-09T07:10:16.802Z
Alph Status Update 2019-06-08
A new baby, a decent amount of work, and an esoteric coding project ate-up most of my time in 2018. Sure, I sprinkled a few commits into the Alph Git repositories last year, but the project mostly idled. Nevertheless, I'm optimistic for some forward momentum in the remaining part of 2019. Here's what's cookin':
There are currently 64 postMessage() calls in Alph.js. I want there to be zero.
When I first wrote the Docuplextron in 2016, I wanted to use Shadow DOM for scoping and encapsulation of document/composition panes, but the browser support wasn't quite there. In the meantime, I implemented a very baroque mechanism using iframes and postMessage() calls. I have never liked doing things this way. It has some capability advantages over Shadow DOM, but it introduces so much overhead in both code and design complexity that it has had a deterrent effect on my development efforts. It's 2019 now, and Shadow DOM has good browser support. So, the first big to-do on my list is to excise all of the iframe/postMessage() garbage from the software and proceed with Shadow DOM – which is what I wanted to do in the first place.
Next, the Docuplextron currently uses the Web Storage API (Window.localStorage) for storing all of its data (workspaces, composition and text fragments, etc.). Since the software is being written as a Web Extension and not a Web-based app, it would behove us to use the Web Extension storage API (storage.local) instead. Storage limits will be larger, data won't be scoped to domains, and the few other perks of that API are worth taking advantage of. This should be a relatively straightforward code change.
Lastly, ...linking.
Linking has been the trickiest part of this system to put together, and I've re-designed it time and time again. I think that I've finally settled on a data model that is maximally flexible, sensible, and standards-compliant. Now I just have to implement it. A lot of the guts are there in the Docuplextron already, they just have to be modified to conform to the latest design[1].
Beyond that, There's a perpetually-growing list of features and tools that I would like to add to the Docuplextron before announcing anything like a preview release, but before I can dig into any of those goodies, the aforementioned key overhauls must be taken care of.
Excelsior!
—L.
1. Can I even call it my design? It's just named RDF graphs. Completely general, entirely standards-compliant – I'm simply making use of what's already out there and well-established, but in a novel application. That's been kind-of the modus operandi for this whole project, I guess.