Giter VIP home page Giter VIP logo

rhizome-dart's Introduction

Rhizome

Pub Version Build Status Coverage Status

A Dart implementation of the Rhizome API, for a new information-centric operating system for humans.

Introduction

Rhizome enables you to create prototypes of TUI and GUI Rhizomatic shells in Dart or Flutter.

Installation

Add rhizome to your pubspec.yaml.

Usage

TODO

Example

See example/example.dart.

Testing

This package uses the standard package:test. Run the tests with pub run test or pub run test/filename.

© 2020 Yong Bakos. All rights reserved.

rhizome-dart's People

Contributors

ybakos avatar

Stargazers

 avatar  avatar Kira Corbett avatar

Watchers

 avatar James Cloos avatar  avatar

Forkers

ybakos-osu

rhizome-dart's Issues

Thing: verify tagging/targeting reciprocity

In the example, try:

f1.tagWith(motorsport);
motorsport.tagWith(f1);
hamilton.tagWith(senna);
hamilton.tagWith(f1);
senna.tagWith(hamilton);
senna.tagWith(f1);

And see what tags and targets are shown for Hamilton.

Continuum: type 'Image' is not a subtype of 'String'

When information is not a string, Continuum crashes when trying to utf8 encode the information to generate a unique URI.

rhizome.dart:29
continuum.dart:25

Thing store(dynamic information) {
    final thing = Thing(
      information: information,
      uri: Uri.dataFromBytes(utf8.encode(information))
    );
    things[thing.uri] = thing;
    return thing;
  }

Continuum: URIs are not unique

When storing new information via Rhizome#store, the Rhizome delegates to Continuum#store. The Continuum creates a Uri using the default constructor, Uri(). Because == between two Uri objects is based on the hashCode of the toString representation of a Uri, just using distinct default Uri objects does not create unique Uris for each newly-created Thing.

This results in the Continuum's hashtable to overwrite the Thing value associated with the Uri key. It also probably fucks up the index in the Repertory.

Soooo... time to focus on Uris for each Thing in the system, to ensure that they are, somehow, unique.

void main() {
  final u1 = Uri();
  final u2 = Uri();
  print(u1 == u2); // true
}

Thing: Introduce mime type or renderers of information?

Since a thing's information is dynamic, we don't know what it is, as data. For example, it could be a String or an Image or a Video.

Had an idea about enriching a Thing with renderers; how real-world information things have an implicit "renderer" in the physical world... are they coupled or not? Should they be? Do we "attach" a list of renderers to things? What if we did?

Or is this just begging for one more piece of metadata - a simple mime type?

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.