I released some big changes to project today. The most important news
is that you can now read waves in a very basic way! This was a
continuation of the work I started from the direct-connect branch.
Also, I merged the direct-connect branch to the default branch. So
now, when you check out the project, you are no longer using the
FedOne API, instead you are using the unofficial, unsupported
client/server API. There were a few reasons I decided to move away
from the FedOne approach to doing things. First, it had more moving
parts, and we had to start up processes and communicate with them, and
even in the best case, all you could possibly get data from is the
Wave Sandbox. I found it painful to use and develop against. Second,
and most importantly, after talking with the Wave team, it appears
that using the unofficial protocol may be a better stepping-stone to
upcoming c/s protocols than using FedOne directly.
Because the protocol we are using is a unsupported protocol, and
because it is under active development, it may change at any time.
When an official c/s protocol is developed and supported by the
existing Wave servers, we will use that instead.
There is one caveat: we will probably still need to use FedOne at some
later date for the Operational Transform algorithm (OT). I would
image we have a similar approach where we hold a connection open with
a FedOne server, and have clojure on the other side. Right now the
FedOne code is no longer in the client, but we can easily restore it
later when we need it. We will likely need a different subset of the
code if we just use FedOne for OT.
There's now a few interesting avenues of exploration: The read-only
version needs significant work. The text should be better formatted
in general (we aren't even wrapping text yet), and it needs to support
as much wave formatting capabilities as possible.
We also need to start exploring the part of the API that handles
updates. For example, we can start at least marking messages read
once they are read. We can also start updating the inbox as it
updates in real-time, and, for the final challenge, get updates to
waves and apply them via the OT algorithm.
As always, there's lots of exciting work to do. Please let me know if
you are interested to help.