Hi Jochen,

2010/1/21 Jochen Bekmann <[email protected]>

> Hi Torben,
>
> Cool, it's great to see more code out there, good effort on your part.
>
Thanks

>
> It might be worth comparing your transformation output against that of
> the published java code (since you can compare at the level of
> protobuffers). If you check out the random operation generator in the
> FedOne repository, it might give you a good place to start.
>

Yes, I really must do this.
Seems I have to warm up my Java skills enough to serialize the deltas in a
file.


>
> It would also be important to verify that deltas that have been
> applied to a wavelet will yield the same results as with the published
> Java code. (again, you could use the random operation generator). If
> necessary you can dump the text of a modified wavelet document from
> both your code and the java code and do a diff ?
>

This is a bit more tricky. I fear that possible errors would be rather in
the area
of annotations, since this is a bit more complex. I need to find a way to
make
the Java Wavelet comparable with the C++ wavelet. A common string
representation
might be the easiest way to go.


>
> I was curious about the OT code, so I had a quick look at your
>

My OT code looks quite different when compared with the FedOne code. I
decided to do a clean room
implementation and figure the algorithm out myself. One needs a challenge in
life :-)


> transform code. Unfortunately I don't have enough time right now to do a
> proper
> review, here are 2 small points to ponder:
>
> It looks like you don't check whether ops are from different documents
> ?
> http://code.google.com/p/qwaveclient/source/browse/trunk/model/documentmutation.cpp#761
> see
> http://code.google.com/p/wave-protocol/source/browse/src/org/waveprotocol/wave/model/operation/Transform.java#54
>
>
This is handled by the following line:
  --> if ( o1.documentId() == o2.documentId() )
(see
http://code.google.com/p/qwaveclient/source/browse/trunk/model/waveletdeltaoperation.cpp#59)
in waveletdeltaoperation.cpp. It suddenly materialized itself in the right
place :-)
Thanks for the hint. Fixed.



> What happens when a client submits at a version that is not the latest
> version of the wavelet ?
>

In the server code this is handled in Wavelet::receive().
http://code.google.com/p/qwaveclient/source/browse/trunk/waveserver/model/wavelet.cpp#44

In QWaveClient the handling is (necessarily) different. You can find it in
OTProcessor::handleReceive()
http://code.google.com/p/qwaveclient/source/browse/trunk/model/otprocessor.cpp#138

Both code bases are using WaveletDeltaOperation::xform for transforming
deltas.
The two afore mentioned places just decide what to transform against what.


> good luck and thanks for the heads-up.
>

Thanks for the immediate feedback.

Cheers
Torben

>
> thanks,
> Jochen
> Software Engineer, Google Wave
>
>
> On Thu, Jan 21, 2010 at 10:56 AM, Torben Weis <[email protected]>
> wrote:
> > Hi,
> > there is a new open-source wave server available written in C++ (I am a
> Java
> > hater).
> > Don't ask me why exactly I did this, but now it's there :-) You can find
> it
> > in the QWaveClient svn (http://code.google.com/p/qwaveclient/) in the
> > 'waveserver' folder. The server offers the same Client/Server protocol as
> > FedOne. Thus, you can use it with FedOne console client or (of course)
> > QWaveClient.
> > The server supports OT (it uses the OT code from QWaveClient). I tested
> it a
> > bit with QWaveClient and it seems that it can be used for waving already,
> > but it is still rather untested. Currently it does not federate, but it
> can
> > host multiple clients concurrently of course.
> > So why should you care? Don't know. It might be a good starting point for
> > C++ coders to work on a wave server and it might be helpful for wave to
> have
> > more than one implementation up and running. I will use it for some
> > experiments with a better Client/Server protocol. The FedOne development
> > model does not lend itself to such a task at all and last not least did i
> > mention that I don't like Java?
> > Cheers
> > Torben
> >
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Wave Protocol" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to
> > [email protected]<wave-protocol%[email protected]>
> .
> > For more options, visit this group at
> > http://groups.google.com/group/wave-protocol?hl=en.
> >
> >
>
> --
> You received this message because you are subscribed to the Google Groups
> "Wave Protocol" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<wave-protocol%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/wave-protocol?hl=en.
>
>
>
>


-- 
---------------------------
Prof. Torben Weis
Universitaet Duisburg-Essen
[email protected]
--
You received this message because you are subscribed to the Google Groups "Wave Protocol" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/wave-protocol?hl=en.

Reply via email to