Ah yes, thanks Yuri. It was wave-summit talks. Three I found very important in the context of code internals:
Day 1: Wave model deep dive Day 3: Real Time Editor and doodads Day 2: Wave Panel and Rendering On Fri, Apr 5, 2013 at 12:36 AM, Yuri Z <vega...@gmail.com> wrote: > Here are some links to Wave Summit talks. > https://cwiki.apache.org/confluence/display/WAVE/Wave+Summit+Talks > > > On Thu, Apr 4, 2013 at 10:03 PM, Pratik Paranjape < > pratikparanj...@gmail.com> wrote: > >> @Willie I don't think an all pervasive event bus exists in the code, if >> that is what you are looking for. Someone will correct me if >> following explanation is wrong. >> >> The the keystrokes are first seen by the Editor (see EditorImpl), they are >> categorized between commands for annotations >> and text input by a sub handler and given to the underlying structure (see >> ContentDocument and IndexedDocumentImpl) to >> update the model and record the deltas. These deltas are internally >> propogated through the higher order wavelet-wave abstraction. >> The operations coming from server pass through the same set..wavelet-wave >> abstraction -> structured model abstraction (documents) >> -> finally editor. There is a tight integration between editor and model >> at >> the lowest level through event handlers. >> The progress from document to higher abstraction is foggy in mind atm, >> haven't seen the code for some time, but there is a very nice >> video in Google IO10 that explains it. >> >> Then there is a Websocket based channel >> (see concurrencycontrol.channel.OperationChannel.java). This one comes >> closest to what you >> might have heard about.It manages communication between server and >> client, >> adding a buffer in between for cases of lost connectivity. >> >> GWT later added an event bus in it's apis, having nothing to do with Wave >> directly. It was popularized when Ray Ryan gave a talk called >> Best Practices for Aritecting GWT Apps in Google IO 2009. It was around >> the >> same time Wave was being explained, so not sure if you are >> referring to that. >> >> And for my own 2 cents, when I checked the wave code base by the >> intentions >> of pulling things apart and modular-izing them for one of my >> own projects, the job seemed tough because of tight integration between >> various parts (Editor-CC stack-Wave Model-UI). The whole framework >> will be easier to handle, if you are willing to build on top of Wave >> model. >> And then Converting it to Scala, that is interesting. In any case, you >> will >> get most ideas, if you scan around through the whitepapers on the >> wave-protocol site and old Google IO videos from wave section. >> >> Good luck. >> >> >> >> >> >> On Fri, Apr 5, 2013 at 12:06 AM, Yuri Z <vega...@gmail.com> wrote: >> >> > I think then, you should take a look at >> > the org.waveprotocol.box.server.waveserver.WaveBus interface. >> > >> > >> > >> > On Thu, Apr 4, 2013 at 9:16 PM, Willie Slepecki <scpha...@gmail.com> >> > wrote: >> > >> > > If im reading the documents right, the federation system is the >> transport >> > > system between two wave servers. in laymans terms, its waves version >> of >> > > SMTP, basically where google tried replacing email servers. that >> part i >> > > have no interest in (at this time), maybe in the future i will want >> the >> > > ability to move a wavelet between my cloud and a clients local cloud >> but >> > > thats so far down the road, its not worth looking at right now. >> > > >> > > no, what im talking about is the push pull event bus between the UI >> and >> > the >> > > server. The event bus that allows save on key stroke, reaplay (when >> > > rebuilt) and concurrent editing of documents, concurrent group >> > > collaboration between people in concurrent editing of documents, etc. >> Is >> > > the heart of that system build outside of GWT and GWT simply accesses >> it >> > or >> > > does that part of the system live entirely in GWT. Its a distinction >> > that >> > > makes a big difference in what im doing and im still trying to figure >> out >> > > which way is up on this thing. >> > > >> > > thanks >> > > >> > > >> > > On Thu, Apr 4, 2013 at 8:35 AM, Yuri Z <vega...@gmail.com> wrote: >> > > >> > > > If you refer to the Wave Federation Protocol, then yes it is >> > implemented >> > > as >> > > > part of the server. However, federation wasn't tested for a while... >> > > > >> > > > >> > > > On Thu, Apr 4, 2013 at 11:16 AM, Willie Slepecki < >> scpha...@gmail.com> >> > > > wrote: >> > > > >> > > > > Ok, i see what you are doing now. Well that fits into what i >> wanted >> > to >> > > > do >> > > > > very well. I don't want my system to be built around wave, i want >> > wave >> > > > to >> > > > > be a component of a much larger system. In order to do that I >> will >> > > pull >> > > > > this apart into more fine grained modules and be able to use those >> > > > modules >> > > > > at will within the rest of the system. >> > > > > >> > > > > What about the event bus that was so touted when this was >> released. >> > is >> > > > > that part of the protocol that was released or is that built into >> the >> > > GWT >> > > > > interface that your team built? >> > > > > >> > > > > Lastly, is the protocol itself functional? meaning i intend to >> fork >> > > this >> > > > > and redevelop a large chunk of it in scala to make other parts of >> my >> > > life >> > > > > easier. If i do that at this point in time am i going to find >> some >> > > major >> > > > > release in 8 months that brings a major system back online that by >> > that >> > > > > point would be completely incompatible with my code base? >> > > > > >> > > > > thanks for your help >> > > > > >> > > > > >> > > > > On Thu, Apr 4, 2013 at 3:36 AM, Yuri Z <vega...@gmail.com> wrote: >> > > > > >> > > > > > Hi >> > > > > > Google did not open the source of original Google Wave, but >> instead >> > > it >> > > > > > created a stand alone open source implementation, with some core >> > > parts >> > > > - >> > > > > > like the OT implementation - being ported as is. But the client >> was >> > > > > rebuilt >> > > > > > from the scratch. >> > > > > > The current implementation saves all the deltas, so it is >> possible >> > to >> > > > > > implement the feature to replay the wave state to some earlier >> > > > condition, >> > > > > > however it is not implemented yet. >> > > > > > >> > > > > > >> > > > > > On Thu, Apr 4, 2013 at 9:17 AM, Willie Slepecki < >> > scpha...@gmail.com> >> > > > > > wrote: >> > > > > > >> > > > > > > is the history replay in the old code repo and just hasn't >> been >> > > > ported >> > > > > > yet >> > > > > > > or did google not release it. >> > > > > > > >> > > > > > > I have been looking at the code for several hours now. its in >> > > pretty >> > > > > > rough >> > > > > > > shape but good enough to run i guess. I had to fix several >> issues >> > > in >> > > > > the >> > > > > > > code to get it to compile but it appears to be compiling >> > correctly >> > > > now. >> > > > > > im >> > > > > > > not very interested in trying to get it to run yet, i just >> want >> > to >> > > > see >> > > > > > how >> > > > > > > its packaged. >> > > > > > > >> > > > > > > but im starting to feel my way around it. i finally found the >> > gwt >> > > > > > > interface and have been pulling that apart. im mainly trying >> to >> > > > > > determine >> > > > > > > if they implemented the event bus for the save on change as a >> > > client >> > > > > > system >> > > > > > > or a server system. right now it looks like both. but i will >> > > still >> > > > > play >> > > > > > > >> > > > > > > >> > > > > > > On Thu, Apr 4, 2013 at 1:54 AM, Yuri Z <vega...@gmail.com> >> > wrote: >> > > > > > > >> > > > > > > > Hi >> > > > > > > > You can find the source code at >> > > > > > > > http://incubator.apache.org/wave/source-code.html >> > > > > > > > The current implementation supports concurrent edition of >> the >> > > > > document >> > > > > > by >> > > > > > > > several users, but there's no implementation for history >> > replay. >> > > > > > > > You can take a look at demo server: waveinabox.net >> > > > > > > > Regarding your needs - if you only need to support real time >> > > > > concurrent >> > > > > > > > editing, then you might also take a look at ShareJS >> > > > > > > > <http://sharejs.org/>project >> > > > > > > > or Google Realtime API < >> > > > > https://developers.google.com/drive/realtime/> >> > > > > > > > >> > > > > > > > >> > > > > > > > On Thu, Apr 4, 2013 at 3:52 AM, Willie Slepecki < >> > > > scpha...@gmail.com> >> > > > > > > > wrote: >> > > > > > > > >> > > > > > > > > I am looking into building a sort of collaborative >> document >> > > > > > management >> > > > > > > > > application. I remembered wave from the google beta days >> > and I >> > > > > > > remember >> > > > > > > > it >> > > > > > > > > having two features that just astonished me, two features >> > that >> > > > > could >> > > > > > > > > complete my design for this new CMS system im designing. >> > > > > > > > > >> > > > > > > > > the first feature was its concurrent editing of a >> document. >> > I >> > > > > > remember >> > > > > > > > the >> > > > > > > > > presenter creating a new wave, indicating that it was a >> > > document, >> > > > > > not a >> > > > > > > > > message, sharing it with other users, and then like 6 >> people >> > > > > started >> > > > > > > > > editing the document in different languages at different >> > > > locations, >> > > > > > at >> > > > > > > > the >> > > > > > > > > same time. I remember the presenter talking about the >> > control >> > > > bus >> > > > > > that >> > > > > > > > > made that possible and how it was that single feature that >> > took >> > > > the >> > > > > > > > longest >> > > > > > > > > to get right >> > > > > > > > > >> > > > > > > > > The second feature was the history replay. he was able to >> > pull >> > > > up >> > > > > a >> > > > > > > > > document and click some kind of history button and a time >> bar >> > > > > similar >> > > > > > > to >> > > > > > > > > windows media players showed up, he was then able to slide >> > the >> > > > bar >> > > > > > all >> > > > > > > > the >> > > > > > > > > way to the left to an empty document and replay each and >> > every >> > > > > change >> > > > > > > > that >> > > > > > > > > happened to that document one at a time until all >> > modifications >> > > > > > > > culminated >> > > > > > > > > into the present state of the document. >> > > > > > > > > >> > > > > > > > > My memory is fuzzy so i may have gotten the fine details >> > wrong, >> > > > but >> > > > > > the >> > > > > > > > > essence of what those features were are here. My >> question is >> > > in >> > > > > the >> > > > > > > > apache >> > > > > > > > > version of this thing, what are the status of those two >> > > features, >> > > > > > what >> > > > > > > > are >> > > > > > > > > the plans for them, and where would i find them in the old >> > > google >> > > > > > code >> > > > > > > if >> > > > > > > > > they havn't been migrated over yet. >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > thanks guys >> > > > > > > > > >> > > > > > > > > -- >> > > > > > > > > You want it fast, cheap, or right. Pick two!! >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > > > -- >> > > > > > > You want it fast, cheap, or right. Pick two!! >> > > > > > > >> > > > > > >> > > > > >> > > > > >> > > > > >> > > > > -- >> > > > > You want it fast, cheap, or right. Pick two!! >> > > > > >> > > > >> > > >> > > >> > > >> > > -- >> > > You want it fast, cheap, or right. Pick two!! >> > > >> > >> > >