Digest 2014-08-13

<body>Welcome to the Federated Wiki conversation for August 13, 2014<br><br>(0) Ward mentioned that he demo&#x27;ed FedWiki on a GovLab hangout yesterday. See <a href="https&#x3a;&#x2F;&#x2F;www&#x2e;youtube&#x2e;com&#x2F;watch&#x3f;v&#x3d;FV0bXEnqxnU">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=FV0bXEnqxnU</a> for YouTube recording of hangout.<br><br>(1) Joseph joined the call<br><ul class="bullet"><li>He has experience working on Google Wave</li><li>Had&nbsp; a tree of servers -- complicated</li><li>Team was huge, only 2 people working on federation</li><li>Were missing some simple things, like printing a wave</li><li>Some updates weren&#x27;t getting through, so didn&#x27;t know content had been updated</li><li>User graph was flattening out when Google killed it</li></ul><br>(2) Ward did an interview on Google Wave<br><ul class="bullet"><li>Wiki is slow motion</li><li>There&#x27;s times when it speeds up</li><li>If three people are there, and don&#x27;t want to wait, could speed up</li><li>Wave had this</li></ul><br>(3) Joseph:&nbsp; Wave was 1.1 million lines of Java<br><ul class="bullet"><li>Team ramped up quickly</li></ul><br>(4) Joseph has been working on share.js<br><ul class="bullet"><li>Shouldn&#x27;t need so much overhead, as did with Wave</li><li>Wave is an XML tree, with annotations</li><li>People then started to try to build Wave gadgets</li><li>e.g. a poll if you want to have dinner tonight</li><li>When that type of data was added, XML is terrible, it doesn&#x27;t allow arbitrary semantic data, and text operations are hard</li><li>If have JSON object, and throw in a string, and then insert a key, and delete all of the keys, there will be a trailing comma</li><li>Have people write their own semantic pipes</li></ul><br>(5) Hop onto the share.js web site?<br><ul class="bullet"><li>Play with widgets</li><li>Sort widget</li><li>Let&#x27;s do this a bit later, as people join this call in the first 5 to 10 minutes</li></ul><br>(6) Paul has helped Ward advanced federated wiki, taking it out of a single file<br><ul class="bullet"><li>Now has been working on node.js</li><li>Also advanced identity, persona</li></ul><br>(7) Paul:&nbsp; has been in computer for 30 years, was at British Telecom, took an early retirement<br><ul class="bullet"><li>Every programming language back into the 1980s</li></ul><br>(8)&nbsp; Ward:&nbsp; maybe we should plot a course to version 1.0<br><br>(9) David talked about Service Systems Thinking<br><br>(10) Joseph:&nbsp; microformats<br><br>(11) We all tried <a href="http&#x3a;&#x2F;&#x2F;sharejs&#x2e;org&#x2F;">http:&#x2F;&#x2F;sharejs.org&#x2F;</a><br><ul class="bullet"><li>This site is running on a old version of share.js, have added some features.</li><li>Client library and server library, talking through a browser channel.</li><li>Scroll down to the bottom of the page:&nbsp; can reorder the trains.</li><li>If you go offline and then online, can synchronize.</li><li>There&#x27;s a wiki demo (in the top bar ... Demos .....)</li><li>In the wiki demo, there&#x27;s a markdown window on the left, results on the right</li><li>Moving around that wiki page, can lose track of the people:&nbsp; don&#x27;t have proper presence support</li><li>Since then, have added presence support, but it doesn&#x27;t work with load-balanced servers, yet</li></ul><br>(12)Seph does work with data visualization, D3<br><ul class="bullet"><li>Planning to do more examples</li><li>Share is powering a lot more, integrated into D3</li><li>Arbitrary JSON structures</li><li>Any of us could be making modifications, and we could see all of the changes</li><li>Just rendering? Actually two-way</li><li>At <a href="http&#x3a;&#x2F;&#x2F;charts&#x2e;derbyjs&#x2e;com&#x3a;8080&#x2F;">http:&#x2F;&#x2F;charts.derbyjs.com:8080&#x2F;</a>, can manipulate data through sliders</li></ul><br>(13) Joseph: If want to do collaborative text, want to see result as soon as striking the key<br><ul class="bullet"><li>Would like to have the same with data binding</li><li>When the operation is acknowledged, then data model would remember</li></ul><br><br>(14) Ward: Federated wiki as a JSON tree<br><ul class="bullet"><li>Change in share.js is finer-grained?</li><li>Open an editor on a data structure (text or graphical), but while editing, make some adjustments, then done, and wiki could then save</li><li>Don&#x27;t have to resolve as much in conflicts, as people write to own wikis</li><li>Can think about when we would edit live, back end services from my server, but for the duration of when the page is up, then could be a connection that wouldn&#x27;t go through the usual wiki RESTful interface, but instead editor-to-editor, and then when done, go back into wiki as if I had done all of the editor</li><li>Yes, coordinate editors through a server</li><li>When to build with something like Git?</li><li>Seeing collaborative editing live, no conflict if can both see it</li><li>So, this is reducing the delay when the conflict is noticed</li><li>But does this scale? May not want the half-finished changes from someone else</li><li>At commit, want conflicts to occur</li><li>Real-time, each knows what the other is doing</li><li>Have different editors (of which most is done in the text editor)</li><li>If had share.js engaged, would know which server it&#x27;s writing to, ready to engage</li><li>If knew the editor was there, could join</li><li>When done editing, could do editing, and not have to worry about stuff changing</li><li>Make all of the changes, and then copy-and-paste into share.js, then saving call back to server about the next text for the document</li><li>Could mark the document as complete or closed, so that others would know</li><li>Worry about sliding in and out of OT environment.&nbsp; Workable?</li><li>Another option of deeper integration would be to have the whole document saved in share.js, and then have changes write to the document immediately</li><li>Not batch operation, think as one semantic change (which is what Wave did)</li></ul><br>(15) In wiki on share.js, each page is a separate document<br><ul class="bullet"><li>In fed wiki, every page could have a different markup, e.g. showing signals, or signal processing link</li><li>Then use share.js not for communicating signals, but instead for communicating signal processing, e.g. every 2 minutes</li></ul><br>(16) Share.js doesn&#x27;t save from one part of the tree to another part of the tree<br><ul class="bullet"><li>Designed so people could have their own custom semantics, but most things can be expressed with JSON (although not rich text)</li><li>Share.js supports defined types</li><li>Have had some recent work on defining subtypes</li></ul><br>(17) Embracing share.js for storage management?<br><ul class="bullet"><li>Could do either way</li><li>In experience with wiki, found editing other people&#x27;s work, since they put it in the right place</li><li>Thus, the first operation in federated wiki is &quot;move&quot;</li><li>Sorting trains example is a move</li><li>Share.js doesn&#x27;t support moving items arbitrarily inside a tree, but the trains are part of a list</li><li>Jeremy&#x27;s pet application is a collaborative to-do list, which can&#x27;t be implemented because of the arbitrary nested link problem</li></ul><br>(18) Nick joined, who got Ward into node<br><ul class="bullet"><li>Have been working on web socket connections to hardware, low latency</li><li>Share.js might work in a similar way?</li></ul><br>(19) Typing, fast and slow?&nbsp; (A book, there?)<br><ul class="bullet"><li>Thinking when fingers are going, and not thinking about how somebody else is doing</li><li>Identifying self as the first step? Thinking about what the other person is reading</li><li>Jamming, playing music together</li></ul><br>(20) Joseph: On Google Wave, there&#x27;s collaboration, and then on editing semantic content<br><ul class="bullet"><li>Would use the root, and then branch conversations off a tree</li><li>Conversation tool, versus collaborative editing:&nbsp; different protocols</li><li>Could use OT to do this, merging content, tranforming content, then properties if both edit or delete</li><li>Could have an OT type that created conflict markers</li><li>Slow merge on things that we don&#x27;t want to collaborate on</li><li>Instead of keeping two edits on the same line, splitting into two lines, and then merging later?</li></ul><br><br>(21) 3 years, had started with a partner working on OT<br><ul class="bullet"><li>Pattern</li><li>Have been revisiting</li><li>In the past week, looking into merging independent action streams:&nbsp; is merging A with B the same as B with A?</li><li>An abstract protocol</li><li>Could get some easy experience with share.js by taking existing editor and making it share.js aware</li><li>But share.js is a more powerful protocol?&nbsp; Not thinking about keystrokes, but semantics instead</li><li>Slip in share.js overnight?</li></ul><br>(22) Share.js is missing insertions, merges in real time<br><ul class="bullet"><li>Share.js is already in node.js</li><li>Needs a real-time stream talking to the browser</li><li>Share.js needs to talk with a database to store, connect, update</li><li>Currently only MongoDB, there&#x27;s a specified API</li></ul><br>(23) Persistence from share.js in minutes or hours?&nbsp; Could save on existing wiki infrastructure for longer-term storage<br><ul class="bullet"><li>Using Port 80 for the RESTful interface</li><li>Just connect to a node module, through web sockets, sharing the same port without interferring?</li><li>Yes, could run on a different URL</li><li>Then could have a federated real-time wiki (something like Wave, then iPad could talk with PC, synchronize)</li></ul><br><br>&lt;&lt; Meeting closed out &gt;&gt;<br><br><br>Here&#x27;s a transcript of comings and goings from the Hangout, before closing the window<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>me&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13:04<br>I&#x27;ve started an Etherpad at <a href="http&#x3a;&#x2F;&#x2F;pad&#x2e;s2t&#x2e;org&#x2F;p&#x2F;2014&#x2d;08&#x2d;13">http:&#x2F;&#x2F;pad.s2t.org&#x2F;p&#x2F;2014-08-13</a><br>If you want to join the transcript, I&#x27;m taking notes at <a href="http&#x3a;&#x2F;&#x2F;pad&#x2e;s2t&#x2e;org&#x2F;p&#x2F;2014&#x2d;08&#x2d;13">http:&#x2F;&#x2F;pad.s2t.org&#x2F;p&#x2F;2014-08-13</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>Ward Cunningham&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13:19<br><a href="http&#x3a;&#x2F;&#x2F;sharejs&#x2e;org&#x2F;">http:&#x2F;&#x2F;sharejs.org&#x2F;</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>me&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13:21<br>The wiki for Service Systems Thinking is at <a href="http&#x3a;&#x2F;&#x2F;s2t&#x2e;org">http:&#x2F;&#x2F;s2t.org</a>&nbsp; , but most of the federated content is at <a href="http&#x3a;&#x2F;&#x2F;fed&#x2e;coevolving&#x2e;com">http:&#x2F;&#x2F;fed.coevolving.com</a> .<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>Joseph Gentle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13:26<br><a href="http&#x3a;&#x2F;&#x2F;sharejs&#x2e;org&#x2F;wiki&#x2F;Main">http:&#x2F;&#x2F;sharejs.org&#x2F;wiki&#x2F;Main</a><br><a href="http&#x3a;&#x2F;&#x2F;sharejs&#x2e;org&#x3a;7007&#x2F;">http:&#x2F;&#x2F;sharejs.org:7007&#x2F;</a><br><a href="http&#x3a;&#x2F;&#x2F;charts&#x2e;derbyjs&#x2e;com&#x3a;8080&#x2F;">http:&#x2F;&#x2F;charts.derbyjs.com:8080&#x2F;</a><br>Allen Byerly joined group chat.<br>Batu Les Iris joined group chat.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>me&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13:42<br>If you want to join the transcript, I&#x27;m taking notes at <a href="http&#x3a;&#x2F;&#x2F;pad&#x2e;s2t&#x2e;org&#x2F;p&#x2F;2014&#x2d;08&#x2d;13">http:&#x2F;&#x2F;pad.s2t.org&#x2F;p&#x2F;2014-08-13</a><br>Batu Les Iris left group chat.<br>Batu Les Iris joined group chat.<br>Ward Cunningham muted Batu Les Iris.<br>Allen Byerly joined group chat.<br>Ward Cunningham blocked Batu Les Iris.<br>Paul Rodwell blocked Batu Les Iris.<br>Allen Byerly blocked Batu Les Iris.<br>Batu Les Iris left group chat.<br>Allen Byerly left group chat.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>me&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 14:02<br>If you want to join the transcript, I&#x27;m taking notes at <a href="http&#x3a;&#x2F;&#x2F;pad&#x2e;s2t&#x2e;org&#x2F;p&#x2F;2014&#x2d;08&#x2d;13">http:&#x2F;&#x2F;pad.s2t.org&#x2F;p&#x2F;2014-08-13</a><br>Joseph Gentle left group chat.<br>Paul Rodwell left group chat.<br>Ward Cunningham left group chat.<br><br>&lt;&lt; This content will be exported to <a href="http&#x3a;&#x2F;&#x2F;fed&#x2e;coevolving&#x2e;com&#x2F;view&#x2F;welcome&#x2d;visitors&#x2F;view&#x2F;digests&#x2d;from&#x2d;sfw&#x2d;meetings">http:&#x2F;&#x2F;fed.coevolving.com&#x2F;view&#x2F;welcome-visitors&#x2F;view&#x2F;digests-from-sfw-meetings</a> &gt;&gt;<br><br></body>