Sorry, just poking in here - A couple of years ago I worked with QuillJS's author to add OT to quill. Its a rich text editor, which emits user events and Jason (the author) has a module which interprets those events, builds operations and can do OT with them. It doesn't support rich embedding of components yet, but he's working on that now.
React's Draft-js might also work well. -J On Wed, Mar 16, 2016 at 11:18 AM, Michael MacFadden <michael.macfad...@gmail.com> wrote: > All, > > A few things on the editor. For one. I think ACE is a plain text editor, > which I have used for a bunch of things. Has a great API for collaboration > integration, but it is not rich text, which is what wave is all about. So I > don’t think that will work. > > Also, I think perhaps I should clarify the term editor. I probably used in > inappropriately. > > There are two parts to be concerned with. The first is collaborative > rendering. If you are just looking at a blip, you can still see it change in > real time. So this would be collaborative rendering. Then when you are > actively editing a blip, you need a collaborative editor. Both are important. > > The main performance issue comes in two places. First I may have a > conversation model that contains hundreds of blips. Some sort of lazy > loading strategy here is probably required and smart attaching and detaching > of listeners. If you have hundreds of blips all rendered at once and all > having to have listeners attached to them because any one of them can change > at any time you can run into rendering performance issues. Secondarily, if > you do have lots of people editing lots of blips, much of that will not be > “on screen” for a given user, and you don’t want to be processing all of > those events and messing with the DOM if you don’t need to. So there are > performance and complexity issues there. > > Then there is the actual editor. Building a Rich Text Editor is not trivial > (still.. How can this be???). So you have to deal with all the issues of > building a rich text editor. Then on top of that you want to integrate > remote cursors, selections, authorship, etc. into that editor. Most editors > do not have that (a few do, and some are easier than others to add that). So > there is complexity here as well. > > If you want to use an open source editor you need one that does the kind of > rich text editing you want to do. It needs to either have the collaboration > capabilities (shared cursors, etc.) that you want, or it has to be reasonably > easy to implement them yourself. And it needs to have a good enough eventing > API for you to hook into it to capture local changes, and to have API to > allow you to drive remote changes into it. > > The point being that, the conversation renderer and rich text editor is a > very non-trivial component, if the assumption is to roughly replicate what is > there. > > > One point I definitely agree with is that the editor itself really should > know nothing about OT. It should be decoupled and just needs to have a good > API with good events. > > ~Michael > > > > > On 3/15/16, 10:11 AM, "Pablo Ojanguren" <pablo...@gmail.com> wrote: > >>Talking about editors I suggest ace from mozilla, >>https://en.wikipedia.org/wiki/Ace_%28editor%29 >> >>BTW, as example, this is an app we are developing on with SwellRT as >>backend: http://staging.teem.works , -it is the staging version, you can >>play! ;)- >> >>2016-03-15 17:12 GMT+01:00 Yuri Z <vega...@gmail.com>: >> >>> No, not really. Javascript on client side is enough - this is how it was >>> originally implemented in microwave by antimatter. >>> >>> On Tue, Mar 15, 2016 at 6:08 PM Thomas Wrobel <darkfl...@gmail.com> wrote: >>> >>> > Ah, right. I am all for realtime, merely that I was also happy to lose >>> > it if it meant significantly more simple implementation. >>> > >>> > >>"Otherwise we can use Robot >>> > >>API - like in https://github.com/vega113/microbox" >>> > >>> > Not keen on RobotAPI as every time I read its use it seems to need an >>> > extra server in the chain/ >>> > ie; >>> > ...<>WaveServer <> Google App Engine <> client >>> > >>> > It should be possible with the web today to avoid that and have >>> > clients connect directly to the wave server no? (hopefully using the >>> > same protocol as any desktop/mobile client). >>> > Of course, I assume you could run host both servers on the same >>> > hardware, but still seems unnecessary to have that extra step. >>> > >>> > >>> > -- >>> > http://lostagain.nl <-- our company site. >>> > http://fanficmaker.com <-- our, really,really, bad story generator. >>> > >>> > >>> > On 15 March 2016 at 16:48, Yuri Z <vega...@gmail.com> wrote: >>> > > Yeah, the intention is to have realtime editing. Otherwise we can use >>> > Robot >>> > > API - like in https://github.com/vega113/microbox >>> > > >>> > > On Tue, Mar 15, 2016 at 5:45 PM Thomas Wrobel <darkfl...@gmail.com> >>> > wrote: >>> > > >>> > >> Does it need to be OT aware on that scale? I thought that was only >>> > >> needed to have fully realtime blip updating rather then a "edit + >>> > >> submit" system. (whereupon the differences could be calculated >>> > >> separately from the editing) >>> > >> Is the intention then to still have realtime editing ? or is this >>> > >> needed anyway regardless? >>> > >> >>> > >> I admit I only know the basics of OT and am vaguely remembering a >>> > >> conversation about realtime blip editing adding complexity to things. >>> > >> >>> > >> -- >>> > >> http://lostagain.nl <-- our company site. >>> > >> http://fanficmaker.com <-- our, really,really, bad story generator. >>> > >> >>> > >> >>> > >> On 15 March 2016 at 16:30, Yuri Z <vega...@gmail.com> wrote: >>> > >> > Not really. You would need to make it OT aware. and then make it >>> > >> efficient. >>> > >> > Lot's of effort. >>> > >> > >>> > >> > On Tue, Mar 15, 2016 at 5:24 PM Thomas Wrobel <darkfl...@gmail.com> >>> > >> wrote: >>> > >> > >>> > >> >> As a side, I noticed Michael MacFadden mentioned building a rich >>> text >>> > >> >> editor in the browser, this much at least have been done in GWT >>> > >> >> libraries; >>> > >> >> >>> > >> >> >>> > >> >>> > >>> http://www.gwtproject.org/javadoc/latest/com/google/gwt/user/client/ui/RichTextArea.html >>> > >> >> >>> > >> >> Its fairly basic, but then, I would assume to start with at least >>> any >>> > >> >> new wave client should stay fairly basic? >>> > >> >> -- >>> > >> >> http://lostagain.nl <-- our company site. >>> > >> >> http://fanficmaker.com <-- our, really,really, bad story >>> generator. >>> > >> >> >>> > >> >> >>> > >> >> On 15 March 2016 at 15:48, Yuri Z <vega...@gmail.com> wrote: >>> > >> >> > Yeah, we need to re-use the existing editor. Patches would be >>> > great! >>> > >> >> > >>> > >> >> > On Tue, Mar 15, 2016 at 4:46 PM Pablo Ojanguren < >>> > pablo...@gmail.com> >>> > >> >> wrote: >>> > >> >> > >>> > >> >> >> Hi, >>> > >> >> >> >>> > >> >> >> I agree with the dependency hell issue and the suggestion for >>> > >> throwing >>> > >> >> >> away the GWT client. This would require a new client-server API >>> as >>> > >> >> >> suggested, however I think a Rest API won't be enough, because >>> > real >>> > >> >> editing >>> > >> >> >> needs websocket. >>> > >> >> >> >>> > >> >> >> I also agree with Michael, developing a new editor is a massive >>> > >> task, so >>> > >> >> >> we should use an existing one and plug it in the new API. >>> > >> >> >> >>> > >> >> >> To write again the server in other language would be great, but >>> I >>> > >> think >>> > >> >> it >>> > >> >> >> requires a huge effort. >>> > >> >> >> >>> > >> >> >> I will be happy to help in decoupling the server-client, I can >>> > >> provide >>> > >> >> the >>> > >> >> >> experience from my fork. And I plan to send some patches to Wave >>> > >> soon. >>> > >> >> >> >>> > >> >> >> >>> > >> >> >> These are some slides about my fork (swellrt) it could give you >>> > some >>> > >> >> ideas: >>> > >> >> >> >>> > >> >> >> >>> > >> >> >>> > >> >>> > >>> https://docs.google.com/presentation/d/1WFDS_m7eyNjBjcdPs0zH496Y9bMSl0_JnSEYGjxNFn0/edit?usp=sharing >>> > >> >> >> >>> > >> >> >> >>> > >> >> >>> > >> >>> > >>> https://docs.google.com/presentation/d/18hMYyECo5EmQsrAb8DT6SkO7LksWVJnhdZmqeCsar4c/edit?usp=sharing >>> > >> >> >> >>> > >> >> >> btw, I would like to start a business providing these SwellRT >>> > >> services. >>> > >> >> >> >>> > >> >> >> >>> > >> >> >> >>> > >> >> >> 2016-03-14 23:27 GMT+01:00 Joseph Gentle <m...@josephg.com>: >>> > >> >> >> >>> > >> >> >>> I've been playing with the idea of starting a company around a >>> > >> rewrite >>> > >> >> of >>> > >> >> >>> wave for years. >>> > >> >> >>> >>> > >> >> >>> -J >>> > >> >> >>> >>> > >> >> >>> On Tuesday, 15 March 2016, Adam Bielski >>> > <a_biel...@ymail.com.invalid >>> > >> > >>> > >> >> >>> wrote: >>> > >> >> >>> >>> > >> >> >>> > Hiya all!I wish I could find out who is potentially >>> interested >>> > in >>> > >> >> >>> creating >>> > >> >> >>> > the WAVE for a commercial service/productwith my seed >>> > >> startup!Cheers! >>> > >> >> >>> > Adam >>> > >> >> >>> > >>> > >> >> >>> > 20:23 poniedziałek, 2016-3-14, Zachary Yaro < >>> > zmy...@gmail.com >>> > >> >> >>> > <javascript:;>> napisał(a): >>> > >> >> >>> > >>> > >> >> >>> > >>> > >> >> >>> > I am inclined to agree with Yuri—if the alternative >>> > >> implementation >>> > >> >> can >>> > >> >> >>> be >>> > >> >> >>> > developed in parallel around the same protocol, that would >>> seem >>> > >> to be >>> > >> >> >>> the >>> > >> >> >>> > best scenario, but the existing codebase should be kept >>> because >>> > >> it is >>> > >> >> >>> > (AFAIK) the most functional implementation of the protocol. >>> > >> >> >>> > >>> > >> >> >>> > Zachary Yaro >>> > >> >> >>> > On Mar 14, 2016 15:05, "Yuri Z" <vega...@gmail.com >>> > >> <javascript:;>> >>> > >> >> >>> wrote: >>> > >> >> >>> > >>> > >> >> >>> > > I think that more "wavy" projects are nice, but IMO it >>> > doesn't >>> > >> >> mean we >>> > >> >> >>> > > should abandon Apache Wave as it is now. I agree there are >>> a >>> > >> lot of >>> > >> >> >>> > issues >>> > >> >> >>> > > with current code, but I think there's still value as >>> people >>> > can >>> > >> >> see >>> > >> >> >>> what >>> > >> >> >>> > > Wave can potentially be. >>> > >> >> >>> > > >>> > >> >> >>> > > On Sun, Mar 13, 2016 at 8:46 AM Evan Hughes < >>> > >> >> wisebald...@apache.org >>> > >> >> >>> > <javascript:;>> >>> > >> >> >>> > > wrote: >>> > >> >> >>> > > >>> > >> >> >>> > > > The link for those who wish to join, Ill also add this >>> link >>> > >> onto >>> > >> >> the >>> > >> >> >>> > new >>> > >> >> >>> > > > website. >>> > >> >> >>> > > > >>> > >> >> >>> > > > https://www.hipchat.com/gsModF8CY >>> > >> >> >>> > > > >>> > >> >> >>> > > > On Sun, 13 Mar 2016 at 12:12 Michael MacFadden < >>> > >> >> >>> > > > michael.macfad...@gmail.com <javascript:;>> >>> > >> >> >>> > > > wrote: >>> > >> >> >>> > > > >>> > >> >> >>> > > > > Yeah. Chatting is fine and beneficial. We just need to >>> > make >>> > >> >> sure >>> > >> >> >>> we >>> > >> >> >>> > > > > capture key decisions and rationale back in the list >>> for >>> > >> all to >>> > >> >> >>> see. >>> > >> >> >>> > > > > >>> > >> >> >>> > > > > ~Michael >>> > >> >> >>> > > > > >>> > >> >> >>> > > > > > On Mar 12, 2016, at 6:07 PM, Evan Hughes < >>> > >> >> >>> wisebald...@apache.org >>> > >> >> >>> > <javascript:;>> >>> > >> >> >>> > > > wrote: >>> > >> >> >>> > > > > > >>> > >> >> >>> > > > > > It does not so as Ive seen other projects state this >>> > motto >>> > >> >> "If >>> > >> >> >>> its >>> > >> >> >>> > > not >>> > >> >> >>> > > > on >>> > >> >> >>> > > > > > the mailing list it didnt happen at all", but allows >>> > for >>> > >> non >>> > >> >> >>> formal >>> > >> >> >>> > > > talk >>> > >> >> >>> > > > > > and back and forth discussion realtime. The Monthly >>> > >> reports >>> > >> >> >>> that we >>> > >> >> >>> > > > > talked >>> > >> >> >>> > > > > > about back when we did the hangout session should >>> > >> probably be >>> > >> >> >>> > picked >>> > >> >> >>> > > up >>> > >> >> >>> > > > > > again, ill add it to the monthly todo's. >>> > >> >> >>> > > > > > >>> > >> >> >>> > > > > > On Sun, 13 Mar 2016 at 11:58 Michael MacFadden < >>> > >> >> >>> > > > > michael.macfad...@gmail.com <javascript:;>> >>> > >> >> >>> > > > > > wrote: >>> > >> >> >>> > > > > > >>> > >> >> >>> > > > > >> One follow up question though. Does hip hat store >>> > >> >> conversations >>> > >> >> >>> > in a >>> > >> >> >>> > > > > >> publicly accessible manner? If not, we need to make >>> > sure >>> > >> >> key >>> > >> >> >>> > > > decisions >>> > >> >> >>> > > > > >> that come out of chats are captured and discussed on >>> > the >>> > >> >> >>> mailing >>> > >> >> >>> > > list >>> > >> >> >>> > > > > for >>> > >> >> >>> > > > > >> all to see. >>> > >> >> >>> > > > > >> >>> > >> >> >>> > > > > >> ~Michael >>> > >> >> >>> > > > > >> >>> > >> >> >>> > > > > >>> On Mar 12, 2016, at 7:15 AM, Evan Hughes < >>> > >> >> >>> wisebald...@apache.org >>> > >> >> >>> > <javascript:;>> >>> > >> >> >>> > > > > wrote: >>> > >> >> >>> > > > > >>> >>> > >> >> >>> > > > > >>> I would get infra to make us a hipchat channel so >>> we >>> > >> have >>> > >> >> some >>> > >> >> >>> > > place >>> > >> >> >>> > > > to >>> > >> >> >>> > > > > >>> talk casually web interface / irc, but seesm the >>> > jira's >>> > >> >> down. >>> > >> >> >>> > > Looking >>> > >> >> >>> > > > > to >>> > >> >> >>> > > > > >>> getting this rolling in some way or another by mid >>> > week. >>> > >> >> >>> > > > > >>> >>> > >> >> >>> > > > > >>> ~ Evan >>> > >> >> >>> > > > > >>> >>> > >> >> >>> > > > > >>>> On Fri, 11 Mar 2016 at 19:48 Evan Hughes < >>> > >> >> >>> > wisebald...@apache.org <javascript:;>> >>> > >> >> >>> > > > > >> wrote: >>> > >> >> >>> > > > > >>>> >>> > >> >> >>> > > > > >>>> The client-server protocol would define a protobuf >>> > and >>> > >> >> json >>> > >> >> >>> rest >>> > >> >> >>> > > > > >> services >>> > >> >> >>> > > > > >>>> so any language that support protocol buffers >>> would >>> > be >>> > >> >> able >>> > >> >> >>> to >>> > >> >> >>> > > make >>> > >> >> >>> > > > a >>> > >> >> >>> > > > > >>>> client or fallback to the json rest. >>> > >> >> >>> > > > > >>>> >>> > >> >> >>> > > > > >>>> >>> > >> >> >>> > > > > >>>> On Fri, 11 Mar 2016 at 19:24 Andreas Kotes < >>> > >> >> >>> > > > > >> count-apache....@flatline.de <javascript:;>> >>> > >> >> >>> > > > > >>>> wrote: >>> > >> >> >>> > > > > >>>> >>> > >> >> >>> > > > > >>>>> FWIW, >>> > >> >> >>> > > > > >>>>> >>> > >> >> >>> > > > > >>>>> I also consider the idea pretty good and would >>> want >>> > >> >> stronger >>> > >> >> >>> > > > > decoupling >>> > >> >> >>> > > > > >>>>> of server/client. I'd be interested in a python >>> > client >>> > >> >> >>> > > > > implementation, >>> > >> >> >>> > > > > >>>>> mostly for CLI and bot integration. >>> > >> >> >>> > > > > >>>>> >>> > >> >> >>> > > > > >>>>> Not sure whether doing a client-side C >>> > implementation >>> > >> of >>> > >> >> the >>> > >> >> >>> > > > > >>>>> communication protocol would be best here (so >>> > wrapper >>> > >> for >>> > >> >> >>> more >>> > >> >> >>> > > > > >> languages >>> > >> >> >>> > > > > >>>>> can follow), or whether native Python would be >>> > >> better. We >>> > >> >> >>> need >>> > >> >> >>> > > > > >> something >>> > >> >> >>> > > > > >>>>> for non-Java folks in any case, I think. >>> > >> >> >>> > > > > >>>>> >>> > >> >> >>> > > > > >>>>> Cheers, >>> > >> >> >>> > > > > >>>>> >>> > >> >> >>> > > > > >>>>> count >>> > >> >> >>> > > > > >>>>> >>> > >> >> >>> > > > > >>>>>> On Fri, Mar 11, 2016 at 10:52:34AM +1000, Evan >>> > Hughes >>> > >> >> >>> wrote: >>> > >> >> >>> > > > > >>>>>> Thankyou all for your feedback and expressions >>> of >>> > >> >> >>> interests, >>> > >> >> >>> > > seems >>> > >> >> >>> > > > > >> like >>> > >> >> >>> > > > > >>>>> we >>> > >> >> >>> > > > > >>>>>> may be able to develop some teams together to >>> make >>> > >> this >>> > >> >> a >>> > >> >> >>> > faster >>> > >> >> >>> > > > > >> reality >>> > >> >> >>> > > > > >>>>>> than just I. Hopefully we can get some more >>> > people to >>> > >> >> >>> express >>> > >> >> >>> > > > > >> interests >>> > >> >> >>> > > > > >>>>> in >>> > >> >> >>> > > > > >>>>>> this way forward. >>> > >> >> >>> > > > > >>>>> >>> > >> >> >>> > > > > >>>>> -- >>> > >> >> >>> > > > > >>>>> Andreas 'count' Kotes >>> > >> >> >>> > > > > >>>>> Taming computers for humans since 1990. >>> > >> >> >>> > > > > >>>>> "Don't ask what the world needs. Ask what makes >>> you >>> > >> come >>> > >> >> >>> alive, >>> > >> >> >>> > > and >>> > >> >> >>> > > > > go >>> > >> >> >>> > > > > >> do >>> > >> >> >>> > > > > >>>>> it. >>> > >> >> >>> > > > > >>>>> Because what the world needs is people who have >>> > come >>> > >> >> >>> alive." -- >>> > >> >> >>> > > > > Howard >>> > >> >> >>> > > > > >>>>> Thurman >>> > >> >> >>> > > > > >> >>> > >> >> >>> > > > > >>> > >> >> >>> > > > >>> > >> >> >>> > > >>> > >> >> >>> > >>> > >> >> >>> > >>> > >> >> >>> >>> > >> >> >> >>> > >> >> >> >>> > >> >> >>> > >> >>> > >>> >