double checked urls

This commit is contained in:
DadaMonad 2015-01-23 16:17:29 +00:00
parent 31e80f0727
commit bba92f6a73
20 changed files with 22 additions and 102 deletions

View File

@ -3,7 +3,7 @@
[![Build Status](http://layers.dbis.rwth-aachen.de/jenkins/job/Yatta/badge/icon)](http://layers.dbis.rwth-aachen.de/jenkins/job/Yatta/) [![Build Status](http://layers.dbis.rwth-aachen.de/jenkins/job/Yatta/badge/icon)](http://layers.dbis.rwth-aachen.de/jenkins/job/Yatta/)
Yatta is a framework for optimistic concurrency control and automatic conflict resolution on arbitrary data types. The framework implements a new OT-like concurrency algorithm and provides similar functionality as [ShareJs] and [OpenCoweb]. Yatta was designed to take away the pain from concurrently editing complex data types like Text, Json, and XML. You can find some applications for this framework [here](https://dadamonad.github.io/Yatta/examples/). Yatta is a framework for optimistic concurrency control and automatic conflict resolution on arbitrary data types. The framework implements a new OT-like concurrency algorithm and provides similar functionality as [ShareJs] and [OpenCoweb]. Yatta was designed to take away the pain from concurrently editing complex data types like Text, Json, and XML. For more information you should check out the [website](https://dadamonad.github.io/Yatta/)!
In the future, we want to enable users to implement their own collaborative types. Currently we provide data types for In the future, we want to enable users to implement their own collaborative types. Currently we provide data types for
* Text * Text

View File

@ -200,7 +200,7 @@
</div> </div>
</div> </div>
<div id='footer'> <div id='footer'>
January 23, 15 15:59:30 by January 23, 15 16:14:11 by
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'> <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo Codo
</a> </a>

View File

@ -138,7 +138,7 @@ Known values that are supported:</p><ul>
</div> </div>
</div> </div>
<div id='footer'> <div id='footer'>
January 23, 15 15:59:30 by January 23, 15 16:14:11 by
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'> <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo Codo
</a> </a>

View File

@ -283,7 +283,7 @@
</div> </div>
</div> </div>
<div id='footer'> <div id='footer'>
January 23, 15 15:59:30 by January 23, 15 16:14:11 by
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'> <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo Codo
</a> </a>

View File

@ -315,7 +315,7 @@ E.g.: let x = {a:[]}. Then x.a.push 1 wouldn&#39;t change anything</p>
</div> </div>
</div> </div>
<div id='footer'> <div id='footer'>
January 23, 15 15:59:30 by January 23, 15 16:14:11 by
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'> <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo Codo
</a> </a>

View File

@ -300,7 +300,7 @@ yatta.bind(textbox);</code></pre>
</div> </div>
</div> </div>
<div id='footer'> <div id='footer'>
January 23, 15 15:59:30 by January 23, 15 16:14:11 by
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'> <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo Codo
</a> </a>

View File

@ -38,7 +38,7 @@
</div> </div>
</div> </div>
<div id='footer'> <div id='footer'>
January 23, 15 15:59:30 by January 23, 15 16:14:11 by
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'> <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo Codo
</a> </a>

View File

@ -34,7 +34,7 @@
</p> </p>
</nav> </nav>
<div id='filecontents'> <div id='filecontents'>
<h1 id="-yatta-https-dadamonad-github-io-files-layout-yatta_logo-png-"><img src="https://dadamonad.github.io/files/layout/Yatta_logo.png" alt="Yatta!"></h1><p><a href="http://layers.dbis.rwth-aachen.de/jenkins/job/Yatta/"><img src="http://layers.dbis.rwth-aachen.de/jenkins/job/Yatta/badge/icon" alt="Build Status"></a></p><p>Yatta is a framework for optimistic concurrency control and automatic conflict resolution on arbitrary data types. The framework implements a new OT-like concurrency algorithm and provides similar functionality as <a href="https://github.com/share/ShareJS">ShareJs</a> and <a href="https://github.com/opencoweb/coweb">OpenCoweb</a>. Yatta was designed to take away the pain from concurrently editing complex data types like Text, Json, and XML. You can find some applications for this framework <a href="https://dadamonad.github.io/Yatta/examples/">here</a>.</p><p>In the future, we want to enable users to implement their own collaborative types. Currently we provide data types for</p><ul> <h1 id="-yatta-https-dadamonad-github-io-files-layout-yatta_logo-png-"><img src="https://dadamonad.github.io/files/layout/Yatta_logo.png" alt="Yatta!"></h1><p><a href="http://layers.dbis.rwth-aachen.de/jenkins/job/Yatta/"><img src="http://layers.dbis.rwth-aachen.de/jenkins/job/Yatta/badge/icon" alt="Build Status"></a></p><p>Yatta is a framework for optimistic concurrency control and automatic conflict resolution on arbitrary data types. The framework implements a new OT-like concurrency algorithm and provides similar functionality as <a href="https://github.com/share/ShareJS">ShareJs</a> and <a href="https://github.com/opencoweb/coweb">OpenCoweb</a>. Yatta was designed to take away the pain from concurrently editing complex data types like Text, Json, and XML. For more information you should check out the <a href="https://dadamonad.github.io/Yatta/">website</a>!</p><p>In the future, we want to enable users to implement their own collaborative types. Currently we provide data types for</p><ul>
<li>Text</li> <li>Text</li>
<li>Json</li> <li>Json</li>
<li>XML</li> <li>XML</li>
@ -64,7 +64,7 @@ But I would become really motivated if you gave me some feedback :) (<a href="ht
<li>Custom data types</li> <li>Custom data types</li>
</ul> </ul>
<h2 id="support">Support</h2><p>Please report <em>any</em> issues to the <a href="https://github.com/DadaMonad/Yatta/issues">Github issue page</a>! <h2 id="support">Support</h2><p>Please report <em>any</em> issues to the <a href="https://github.com/DadaMonad/Yatta/issues">Github issue page</a>!
I would appreciate if developers give me feedback on how <em>convenient</em> the framework is, and if it is easy to use. Particularly the XML-support may not support every DOM-methods - if you encounter a method that does not cause any change on other peers, please state function name, and sample parameters. However, there are browser-specific features, that Yatta won&#39;t support.</p><h2 id="license">License</h2><p>Yatta! is licensed under the <a href="./LICENSE.txt">MIT License</a>.</p><a href="&#x6d;&#x61;&#105;&#108;&#116;&#x6f;&#x3a;&#x6b;&#101;&#118;&#105;&#110;&#x2e;&#x6a;&#x61;&#104;&#x6e;&#115;&#64;&#114;&#x77;&#116;&#x68;&#45;&#x61;&#x61;&#x63;&#104;&#101;&#x6e;&#46;&#x64;&#101;">&#x6b;&#101;&#118;&#105;&#110;&#x2e;&#x6a;&#x61;&#104;&#x6e;&#115;&#64;&#114;&#x77;&#116;&#x68;&#45;&#x61;&#x61;&#x63;&#104;&#101;&#x6e;&#46;&#x64;&#101;</a> I would appreciate if developers give me feedback on how <em>convenient</em> the framework is, and if it is easy to use. Particularly the XML-support may not support every DOM-methods - if you encounter a method that does not cause any change on other peers, please state function name, and sample parameters. However, there are browser-specific features, that Yatta won&#39;t support.</p><h2 id="license">License</h2><p>Yatta! is licensed under the <a href="./LICENSE.txt">MIT License</a>.</p><a href="&#x6d;&#x61;&#105;&#108;&#x74;&#111;&#x3a;&#x6b;&#x65;&#118;&#x69;&#x6e;&#x2e;&#106;&#x61;&#104;&#x6e;&#115;&#64;&#x72;&#x77;&#116;&#x68;&#x2d;&#x61;&#97;&#99;&#104;&#101;&#x6e;&#46;&#x64;&#101;">&#x6b;&#x65;&#118;&#x69;&#x6e;&#x2e;&#106;&#x61;&#104;&#x6e;&#115;&#64;&#x72;&#x77;&#116;&#x68;&#x2d;&#x61;&#97;&#99;&#104;&#101;&#x6e;&#46;&#x64;&#101;</a>
@ -73,7 +73,7 @@ I would appreciate if developers give me feedback on how <em>convenient</em> the
</div> </div>
</div> </div>
<div id='footer'> <div id='footer'>
January 23, 15 15:59:30 by January 23, 15 16:14:11 by
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'> <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo Codo
</a> </a>

View File

@ -106,7 +106,7 @@
</div> </div>
</div> </div>
<div id='footer'> <div id='footer'>
January 23, 15 15:59:30 by January 23, 15 16:14:11 by
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'> <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo Codo
</a> </a>

View File

@ -72,7 +72,7 @@
</dl> </dl>
</div> </div>
<div id='footer'> <div id='footer'>
January 23, 15 15:59:30 by January 23, 15 16:14:11 by
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'> <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo Codo
</a> </a>

View File

@ -48,7 +48,7 @@
</dl> </dl>
</div> </div>
<div id='footer'> <div id='footer'>
January 23, 15 15:59:30 by January 23, 15 16:14:11 by
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'> <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo Codo
</a> </a>

View File

@ -39,7 +39,7 @@
</table> </table>
</div> </div>
<div id='footer'> <div id='footer'>
January 23, 15 15:59:30 by January 23, 15 16:14:11 by
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'> <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo Codo
</a> </a>

View File

@ -39,7 +39,7 @@
</table> </table>
</div> </div>
<div id='footer'> <div id='footer'>
January 23, 15 15:59:30 by January 23, 15 16:14:11 by
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'> <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo Codo
</a> </a>

View File

@ -39,7 +39,7 @@
</table> </table>
</div> </div>
<div id='footer'> <div id='footer'>
January 23, 15 15:59:30 by January 23, 15 16:14:11 by
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'> <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo Codo
</a> </a>

View File

@ -39,7 +39,7 @@
</table> </table>
</div> </div>
<div id='footer'> <div id='footer'>
January 23, 15 15:59:30 by January 23, 15 16:14:11 by
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'> <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo Codo
</a> </a>

View File

@ -63,7 +63,7 @@
</div> </div>
</div> </div>
<div id='footer'> <div id='footer'>
January 23, 15 15:59:30 by January 23, 15 16:14:11 by
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'> <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo Codo
</a> </a>

View File

@ -74,7 +74,7 @@
</div> </div>
</div> </div>
<div id='footer'> <div id='footer'>
January 23, 15 15:59:30 by January 23, 15 16:14:11 by
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'> <a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo Codo
</a> </a>

View File

@ -1,21 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>PeerJs Json Example</title>
<script src="../../../Yatta-Connectors/xmpp-connector/xmpp-connector.js"></script>
<script src="../../build/browser/yatta.js"></script>
<script src="./index.js"></script>
</head>
<body>
<h1 contentEditable> PeerJs + Json Tutorial</h1>
<p> Collaborative Json editing with <a href="https://github.com/DadaMonad/Yatta/">Yatta</a>
and <a href="http://peerjs.com/">PeerJs</a> (WebRTC). </p>
<textarea style="width:80%;" rows=40 id="textfield"></textarea>
<p> <a href="https://github.com/DadaMonad/Yatta/">Yatta</a> is a Framework for Real-Time collaboration on arbitrary data structures.
You can find the code for this example <a href="https://github.com/DadaMonad/Yatta/tree/master/examples/PeerJs-Json">here</a>.
</p>
</body>
</html>

View File

@ -1,59 +0,0 @@
/**
## PeerJs + JSON Example
Here, I will give a short overview on how to enable collaborative json with the
[PeerJs](http://peerjs.com/) Connector and the Json Framework. Open
[index.html](http://dadamonad.github.io/Yatta/examples/PeerJs-Json/index.html) in your Browser and
use the console to explore Yatta!
[PeerJs](http://peerjs.com) is a Framework that enables you to connect to other peers. You just need the
user-id of the peer (browser/client). And then you can connect to it.
First you have to include the following libraries in your html file:
```
<script src="http://cdn.peerjs.com/0.3/peer.js"></script>
<script src="../../build/browser/Frameworks/JsonFramework.js"></script>
<script src="../../build/browser/Connectors/PeerJsConnector.js"></script>
<script src="./index.js"></script>
```
### Create Connector
The PeerJs Framework requires an API key, or you need to set up your own PeerJs server.
Get an API key from the [Website](http://peerjs.com/peerserver).
The first parameter of `createPeerJsConnector` is forwarded as the options object in PeerJs.
Therefore, you may also specify the server/port here, if you have set up your own server.
*/
var yatta, yattaHandler;
/**
This will connect to the server owned by the peerjs team.
For now, you can use my API key.
*/
connector = new XMPPConnector("testy-xmpp-json2");
connector.debug = true
/**
### Yatta
yatta is the shared json object. If you change something on this object,
it will be instantly shared with all the other collaborators.
*/
yatta = new Yatta(connector);
window.onload = function(){
var textbox = document.getElementById("textfield");
yatta.observe(function(events){
for(var i=0; i<events.length; i++){
var event = events[i];
if(event.name === "textfield" && event.type !== "delete"){
//yatta.val("textfield").bind(textbox);
yatta.val("textfield").bind(document.querySelector("h1"))
}
}
});
connector.whenSynced(function(){
if(yatta.val("textfield") == null){
yatta.val("textfield","stuff", "mutable");
}
})
};

View File

@ -1,6 +1,6 @@
{ {
"name": "yatta", "name": "yatta",
"version": "0.2.0", "version": "0.2.1",
"description": "A Framework that enables Real-Time Collaboration on arbitrary data structures.", "description": "A Framework that enables Real-Time Collaboration on arbitrary data structures.",
"main": "./build/node/yatta.js", "main": "./build/node/yatta.js",
"scripts": { "scripts": {
@ -25,11 +25,11 @@
"bugs": { "bugs": {
"url": "https://github.com/DadaMonad/Yatta/issues" "url": "https://github.com/DadaMonad/Yatta/issues"
}, },
"homepage": "https://github.com/DadaMonad/Yatta/", "homepage": "https://dadamonad.github.io/Yattay/",
"dependencies": { "dependencies": {
"codo": "^2.0.9"
}, },
"devDependencies": { "devDependencies": {
"codo": "^2.0.9",
"underscore": "^1.6.0", "underscore": "^1.6.0",
"chai": "^1.9.1", "chai": "^1.9.1",
"codo": "^2.0.9", "codo": "^2.0.9",