Giter Club home page Giter Club logo

mimis's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

mimis's Issues

CLI-client to serialize to/from a filesystem

It should be possible to create a command-line interface which will pull a Mïmis tree down as a collection of files and symlinks, then allow synchronizing updated data with the network.

Mïmis is ultimately meant to serve itself. All commits to libraries could be stored in the network and a given program could specify its dependencies in terms of those commits.

Tags and branches could be created by using specially structures subtrees. It would be much like the internal structure of Git now, but in a format that's human-readable. For example, I type mimis branch, and it returns me a listing from <repo root>/.mïmis/branches/.

The tricky part is how to know the repo root. In general, children in Mïmis don't know what other nodes are their parents. It is possible though, to store the Ceramic id of the parent which is the root of the repository. This could be saved as .mïmis/repository/.

With Git there is an object database in the .git/ directory. For Mïmis, the object database is in Ceramic. Each directory and file has its own commit history.

Implement path resolution and content aggregation algorithm

From the README,

  1. Start the search queue with the Mïmis root from IDX.
  2. Each Mïmis node has an optional ordered list of DIDs of overriding users. If any are specified, add their Mïmis roots to the search queue in the order given for the DIDs.
  3. While there is more than one element remaining in the path to be dereferenced, shift the first element and iterate over the search queue, looking for directory nodes that have a child element that matches the current path portion.
  4. Each iteration produces a new search queue one level deeper in the tree.
  5. If a node has overrides, those overrides are added to the search queue following the element being dereferenced. The node added to the queue is from the same position in the tree as is currently being defreferenced.

Set up initial Next.js installation

I would like this application to be javascript, specifically Next.js and React backed by Ceramic documents indexed by The Graph or some other large-scale caching mechanism.

A basic Next.js app needs to be set up. Specifically it needs to generate the Player images so they can be loaded viz image tags from the main Map.

Add more in-depth data structure viewing

Work has begun as the Mock object.

The goal is to create an alternate versions for the functions and objects in the Ceramic and IDX APIs. Using this mock object, generate a D3 tree [1], [2], [3], [4] showing the expansion of nodes through the dereferencing of children and incorporation of overrides according to the algorithm.

Not pictured in the existing diagrams is the fact there are a number of rendering queues. This should be represented by a set of (10) nodes just under the root. Rather than being a string DID, an override can be an object: { did, zIndex }. In this case, it is put in the appropriate subtree.

Z-index in CSS allows any integer as the value. I would like to limit the number 0 to 9. Layer 0 is overriden by everything else, layer 9 overwrites everything else. The context node for a location is computed by doing a preorder traversal, so subtree 0 is visited first and 9 last.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.