incubator-wave-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pratik Paranjape <pratikparanj...@gmail.com>
Subject Re: Need help evaluating wave for a project
Date Thu, 04 Apr 2013 20:17:37 GMT
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 <vega113@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 <
> pratikparanjape@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 <vega113@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 <scphantm@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 <vega113@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 <
>> scphantm@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 <vega113@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 <
>> > scphantm@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 <vega113@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
<
>> > > > scphantm@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!!
>> > >
>> >
>>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message