Possible Research Directions

Key Question: On what should I focus my Work hours? What's the focus of the research? What question am I trying to answer? What's the deliverable?

DXOS's mission is to enable developers to build a new class of data-driven applications. In order to accomplish that mission, we must:

  • develop the underlying platform that supports this new class of applications
    • solve research problems that enable underlying platform
  • demonstrate/discover the advantages of this class of applications through examples
  • get to usage at scale of the underlying platform in order to sustain the business

Ink & Switch's mission is to "shift the industry" in their thinking and practice to enable software to be more productive, user-centric, malleable, and expressive. They accomplish that through research papers, spin-outs, and partnering with leaders in industry.

DXOS is building a malleable software super-app (similar to an operating system) called Composer that has a few key ideas:

  • Plugins: every single thing is a plugin. The main app simply loads a list of plugins. The plugins then take over the application, render the UI, offer behavior to other plugins, and a host of other things.
  • Surfaces: everything in the application is a surface that is drawable by a plugin. Plugins can also offer up areas of their surface for the use of other plugins. This creates a completely malleable user interface.
  • Graph: the underlying data store is materialized as a graph that ... I don't understand this one!
  • Universal Drag-n-drop: plugins can register themselves as draggable from and to a variety of contexts. They can receive drags from arbitrary plugins and offer drags to arbitrary plugins. This creates a valuable core feature for mouse-driven interop between plugins.
  • ECHO: all plugins have access to the data store, identity mechanisms, and networking layer. This trivially provides each plugin with a host of capabilities: real-time collaboration, multi-device sync, offline functionality, etc.

Ink & Switch has similarly built a number of malleable software environments and are currently working on one called BlueTack.

There are three areas that are of interest to me that would make for good collaborations with Ink & Switch while also having commercial value for DXOS:

A rich-text editor that supports Standoff Markup

  • Automerge, the Ink & Switch sponsored CRDT, now natively supports standoff for rich text. It's built on the annotation data model.
  • DXOS currently uses Y.js to handle object merges, including raw text, and doesn't currently have a rich text plugin. We considered that switching from Y.js to Automerge is probably only a week or two of effort and would provide some benefits.
  • I'm convinced that Standoff Markup represents a superset of what is possible with today's rich text editor and a standoff-based editor would be uniquely extensible and powerful and fit well in the DXOS environment.
  • Open research questions:
    • What new primitives would be required in a standoff editor that would extend the medium?
    • How would bi-directional transform work to less expressive text formats? AtJSON started exploring this.
  • Blaine Cook is no longer at Fission. He built atJSON and, years ago, built a startup around a standoff-based annotation editor called Poetica. I should probably only work on this if and when Blaine is available.
  • Ink & Switch has not yet done work on the ramifications of standoff.
  • I do have a hunch that a standoff editor could be plugin-extensible in the same way as Composer itself so that it could become a fully-extensible editor.
  • Reach out to Blaine - maybe he leads a research project at Ink & Switch under Geoffrey's new track in collab with DXOS?

Stack

  • Inside of Composer, I think we need UI/UX primitives that allow for user's to fluidly interact in this massively transcluded medium. Check out examples from Ted Nelson's Xanadu to see how systems like this can be overwhelming and unusable.
  • I'm starting to get a glimpse of one I'm calling a Card Stack. I think Card Stack as Medium for Thinking.
  • DXOS needs to focus on making Composer a solid, usable product that people can actually use to get work done. Getting the primitives right is essential for that effort.

Cambria 2

  • Cambria is a research project from Ink & Switch to solve the schema migration and schema interop problems. The problem goes like this:
    • With a system that supports offline, peers may be running an older version of the application code when they connect with one another. (we can try to force upgrades, but can't guarantee it, and perhaps we want to allow for diff versions to interoperate)
    • Developers need to evolve the schema as they develop their application, create new features, modify existing ones, etc.
    • This schema evolution can break old clients and also modify the data in such a way that it becomes unreadable for older clients.
    • This compounds when you have different applications all reading/writing to a shared data substrate. If you don't have a schema interop system in place, every application that reads/writes to a specific object will have to be upgraded in lockstep as the schema evolves. Not good!
  • Cambria has never been deployed in a production system, and there are open questions towards the end of the paper that Geoff is interested in exploring.
  • This seems like the clearest near-term win for us and for Ink & Switch.
Possible Research Directions
Interactive graph
On this page
Possible Research Directions
A rich-text editor that supports Standoff Markup
Stack
Cambria 2