Live data from Hacker News

Open source collaborative text editors

juretriglav.si

151–160 of 167 posts

Re: Open source collaborative text editors

#151
post #87

Earlier quoted context omitted.

You can currently already do good-enough-for-most DOM-level synchronization using any editor, of which we have a few examples. A lot of the examples of RTC out there (apps using TogetherJS for instance) are doing this already. For rich text, we'd like to be able to provide 100% support for a particular editor's capabilities, which necessitates a deeper, custom data model. One of our value propositions is a unified ba…

Could you point us to some of those togetherJS apps? I just recently learned about it in the context of collaborative browsing. How is this related to collaborative text stuff?

If you scroll down a bit there are a few examples, including jsfiddle: https://togetherjs.com/

Essentially, they are doing OT on the DOM.

Re: Open source collaborative text editors

#152

I’m new to the topic from a technical point of view. I was wondering if the conflict resolving issues are fundamentally different from online gaming scenarios. I.e., could the ways problems are solved in multiplayer games also be applied to collaborative editors and vice versa?

From my limited exploration and talk with Justin over at http://www.kinematicsoup.com, the requirement for low latency combined with a lot of large binary data requires different approaches.

Re: Open source collaborative text editors

#153
post #147
post #141

Earlier quoted context omitted.

Thanks for the shoutout! We are actively developing on ShareDB ( https://github.com/share/sharedb ) and if anyone is really interested in this, please reach out to me ( https://github.com/nateps ). Also, Lever is looking to hire someone to work full time on our internal + open source frameworks including ShareDB.

Thanks for ShareDB! Funny thing, I was looking for a self-hosted real-time collaborative editor myself just a week ago, and landed exactly on Quill.js backed by ShareDB. (I also considered SharedDB-backed Monaco, but it doesn’t seem to support OT out of the box, whereas Quill is literally plug and play. Of course one can write a translation layer between Monaco’s change events and OT.)

That's awesome! Let us know how it goes.

Re: Open source collaborative text editors

#154

I’m new to the topic from a technical point of view. I was wondering if the conflict resolving issues are fundamentally different from online gaming scenarios. I.e., could the ways problems are solved in multiplayer games also be applied to collaborative editors and vice versa?

The quake3 netcode is eventually consistent and always reminded me of CRDTs. https://fabiensanglard.net/quake3/network.php

I was thinking exactly about q3a when I wrote the question!

Re: Open source collaborative text editors

#155

What many people not fully grasp, at first sight, is that offline support for a collaborative editor is at least an order of magnitude more complex than just building a collaborative editor. In online collaborative environments, solving conflicts is relatively simple, as the changes are supposed to be small. But when two (or more) people are working on the same document without synching it for hours or days, the merg…

This is an interesting subject, to be honest. Of course, it depends on the collaborative editing solution. When it comes to OT -- if the implementation is correct, it doesn't really matter how many operations are queued for synchronising. So, it doesn't really matter how long users were de-synced when creating their content. But this is only theory and it applies more to technical side as there might be some semantic…

OT is very simple to implement, but needs a server, although a simple one, that have a counter, and attach the count to each message when sending it to the clients. That way clients can know how to transform the message, and which message came first. CRDT however is more complex, but does not require a server. It can also tolerate some "offline" time. I do not however think CRDT can be used in order to get conflict free merging, I think there always need to be a manual merge resolution. But I would love to be proven wrong! Maybe machine learning and live training could be used to make better merge suggestions. If you solve the merge problem that would also make software version control merging easier! Which is a huge market. And there are probably a ton of other use cases too, besides just collaborate editing.

Re: Open source collaborative text editors

#156

A few other CRDT / collaborative text editor links I've collected: * https://blog.datproject.org/2019/03/05/caracara-react-dat-au... * https://conclave-team.github.io/conclave-site/ * https://github.com/noffle/hyperpad * https://xi-editor.io/xi-editor/docs/crdt.html * https://github.com/atom/teletype-crdt * https://github.com/atom/xray * https://github.com/MicrosoftDocs/live-share

Also: https://github.com/gritzko/swarm

Re: Open source collaborative text editors

#157
Hacking is not just about having access to things of other people, it essentially means seeking a solution to a problem, The deep web has been solving these problems for people over decades and putting up smiles on their faces. We offer range and quick hacking services, with the help of our expert tech agents who we employed from various regions because of the good quality of works they give.

are you interested in hiring us for your next hacking service we do a list of wide and range hacking services;

contact our agent/officer on

cipherhacker1@gmail.com for any of the services listed below or more

Criminal case clearing{we clear case from police station and also reduce court sentence by hacking court database}{we also clear past criminal records}

mac computers hacking- we give full strength recovery of data"s on the system

* We do school grade upgrading- we do it a way that your supervisor would not notice and we would change your grade permanently and help you monitor your next grades.

Western union

Car hacking and unlocking, we also do car tracing to get location of your stolen cars

Wifi password cracking

We also do device protection._ we help you protect all your phones and laptops to stop any hacker from gaining access.

DDOS attacking

Ethical hacking learning

Instagram hacking

Whatsapp {we can get past whatsapp chats and media of the person and also direct future messages to you}

snapchat

Facebook

Hotmail

Email and Gmail {we also do mail protection,to protect your mail from being hacked in future}

Mobile phones- we network tracing and stalking to help you stalk your spouse

icloud and iPhone- we original data uploaded to the account database

Blogger hacking

Youtube channel hacking

Wordpress hacking

Skype

Software

Penetration test

CCTV hacking

Phone hacking and tracing

*Gaming and betting site hacking

>>>> You can contact us for other services not listed here.

contact on cipherhacker1@gmail.com

your satisfaction is our goal

Re: Open source collaborative text editors

#158

One neat thing about live collaboration is that every single edit is stored. This enables some nice things, like seamless replay of the entire document editing history. We've been working for a while on trying to analyze edit histories, to see if we could predict which stage of editing a document is in, which writing strategy users use, how a small team is collaborating etc. (Main purpose is to support teachers using…

Hi Houshuang - very interested in this area. My company produces a web app for document-based collaboration in Higher Education (working with Universities in Australia and NZ over the last 10 years). We are also research-active and involved in collaborative research projects with a number of Unis. Please contact me via my profile. ~ Rodney

Re: Open source collaborative text editors

#159
post #155

Earlier quoted context omitted.

This is an interesting subject, to be honest. Of course, it depends on the collaborative editing solution. When it comes to OT -- if the implementation is correct, it doesn't really matter how many operations are queued for synchronising. So, it doesn't really matter how long users were de-synced when creating their content. But this is only theory and it applies more to technical side as there might be some semantic…

OT is very simple to implement, but needs a server, although a simple one, that have a counter, and attach the count to each message when sending it to the clients. That way clients can know how to transform the message, and which message came first. CRDT however is more complex, but does not require a server. It can also tolerate some "offline" time. I do not however think CRDT can be used in order to get conflict f…

> OT is very simple to implement, but needs a server (...)

Well, OT in general does not need the server but server-less implementations are more complex (more transforming functions to write, except of "inclusion transformation" you also have to write "exclusion transformation" algorithms).

I also wouldn't say that "OT is very simple to implement" - it is in it's base form, for linear data, with the server in the network. But every enhancement brings a lot of complexity.

Re: Open source collaborative text editors

#160
post #155

Earlier quoted context omitted.

OT is very simple to implement, but needs a server, although a simple one, that have a counter, and attach the count to each message when sending it to the clients. That way clients can know how to transform the message, and which message came first. CRDT however is more complex, but does not require a server. It can also tolerate some "offline" time. I do not however think CRDT can be used in order to get conflict f…

> OT is very simple to implement, but needs a server (...) Well, OT in general does not need the server but server-less implementations are more complex (more transforming functions to write, except of "inclusion transformation" you also have to write "exclusion transformation" algorithms). I also wouldn't say that "OT is very simple to implement" - it is in it's base form, for linear data, with the server in the net…

On a work "test" I was asked to write a diff function (least amount of transformation to get from one state to another state) from scratch, even though I've read many diff-algorithm-papers in my life I couldn't actually implement one (even though I got 99/100 tests right, they failed me with the feedback that I need to work on my algorithms ... ). But after getting the concept of OT it was straight forward to implement it from scratch. That's my relativity, maybe someone else think it's easier to implement a diff algorithm.

If two clients, your client (a) and another client (b), writes the letters a and b respectively at the same time, from either client's perspective they where first, so on client A the state will be "ab" and on client B the state will be "ba". How do you solve that without a server/master ? With a server/master the server just have to increment a counter for each operation, and the clients can use that counter to know which order. So if a has counter 77, and b has counter 76, the state will be "ba".

Post reply on HN