<body>Welcome to the Federated Wiki conversation for August 13, 2014<br><br>(0) Ward mentioned that he demo'ed FedWiki on a GovLab hangout yesterday. See <a href="https://www.youtube.com/watch?v=FV0bXEnqxnU">https://www.youtube.com/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 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't getting through, so didn'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's times when it speeds up</li><li>If three people are there, and don't want to wait, could speed up</li><li>Wave had this</li></ul><br>(3) Joseph: 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'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'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'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: 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) Ward: maybe we should plot a course to version 1.0<br><br>(9) David talked about Service Systems Thinking<br><br>(10) Joseph: microformats<br><br>(11) We all tried <a href="http://sharejs.org/">http://sharejs.org/</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: can reorder the trains.</li><li>If you go offline and then online, can synchronize.</li><li>There's a wiki demo (in the top bar ... Demos .....)</li><li>In the wiki demo, there's a markdown window on the left, results on the right</li><li>Moving around that wiki page, can lose track of the people: don't have proper presence support</li><li>Since then, have added presence support, but it doesn'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://charts.derbyjs.com:8080/">http://charts.derbyjs.com:8080/</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'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'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'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. 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'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's work, since they put it in the right place</li><li>Thus, the first operation in federated wiki is "move"</li><li>Sorting trains example is a move</li><li>Share.js doesn't support moving items arbitrarily inside a tree, but the trains are part of a list</li><li>Jeremy's pet application is a collaborative to-do list, which can'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? (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'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: 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'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: 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? 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's a specified API</li></ul><br>(23) Persistence from share.js in minutes or hours? 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><< Meeting closed out >><br><br><br>Here's a transcript of comings and goings from the Hangout, before closing the window<br> <br>me 13:04<br>I've started an Etherpad at <a href="http://pad.s2t.org/p/2014-08-13">http://pad.s2t.org/p/2014-08-13</a><br>If you want to join the transcript, I'm taking notes at <a href="http://pad.s2t.org/p/2014-08-13">http://pad.s2t.org/p/2014-08-13</a><br> <br>Ward Cunningham 13:19<br><a href="http://sharejs.org/">http://sharejs.org/</a><br> <br>me 13:21<br>The wiki for Service Systems Thinking is at <a href="http://s2t.org">http://s2t.org</a> , but most of the federated content is at <a href="http://fed.coevolving.com">http://fed.coevolving.com</a> .<br> <br>Joseph Gentle 13:26<br><a href="http://sharejs.org/wiki/Main">http://sharejs.org/wiki/Main</a><br><a href="http://sharejs.org:7007/">http://sharejs.org:7007/</a><br><a href="http://charts.derbyjs.com:8080/">http://charts.derbyjs.com:8080/</a><br>Allen Byerly joined group chat.<br>Batu Les Iris joined group chat.<br> <br>me 13:42<br>If you want to join the transcript, I'm taking notes at <a href="http://pad.s2t.org/p/2014-08-13">http://pad.s2t.org/p/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> <br>me 14:02<br>If you want to join the transcript, I'm taking notes at <a href="http://pad.s2t.org/p/2014-08-13">http://pad.s2t.org/p/2014-08-13</a><br>Joseph Gentle left group chat.<br>Paul Rodwell left group chat.<br>Ward Cunningham left group chat.<br><br><< This content will be exported to <a href="http://fed.coevolving.com/view/welcome-visitors/view/digests-from-sfw-meetings">http://fed.coevolving.com/view/welcome-visitors/view/digests-from-sfw-meetings</a> >><br><br></body>