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 19:03:07 GMT
@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