問題タブ [operational-transform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
14 に答える
34210 参照

etherpad - 運用変革ライブラリ?

複数のユーザー間でテキストをリアルタイムで同期できるライブラリを探しています (ala Google Docs)。

私は、私のニーズに合っているように思われる Operational Transformation に出くわしました。そうは言っても、OTの要点は理解していますが、OTの数学や実装は理解していません。

したがって、テキスト領域にフックして変換を生成し、それらの変換を別のクライアントに適用できるドラッグアンドドロップ Javascript ライブラリがあるかどうか疑問に思っていましたか?

(私は Etherpad のソースを手に入れましたが、それについて頭も尻尾もわかりません。誰かが Etherpad の OT 実装を活用する方法を指摘できれば、それも素晴らしいことです!)

0 投票する
1 に答える
512 参照

etherpad - データベースの可換 (演算変換) 差分

テキスト ファイル (またはデータベースの場合は INSERT/UPDATE/DELETE) 間の "diff" を生成する Unix プログラムは、"diff" が適用される順序が無関係であり、順序に関係なく結果が同じになるようにします。

Etherpad はかつてこのようなことをしていました。

例 (特定のドキュメントまたはデータベースの場合):

% Adam が X を変更し、次に Bob が Y を変更し、次に Adam が Z を変更します。

% ただし、ネットワーク遅延のため、Adam は XZY の順序で変更を認識し、Bob は YXZ の順序で変更を認識します。

% ただし、コード/変更は、XYZ と YZZ が同じ結果になるように記述されています。

注: 理想的には、これは X/Y/Z の反転を行う必要なく実行できます。

Operational Transformation ライブラリを読みましたか? しかし、これが本当に私が望むことをするかどうかはわかりません。

0 投票する
5 に答える
3008 参照

java - 操作変換の実装(javascriptではない)

Webサイトのサーバー側でプレーンテキストベースの変更のためだけにマルチユーザー操作変換を実装しようとしています。

推奨できるJavaScript以外の実装はありますか?

0 投票する
1 に答える
619 参照

ruby-on-rails - 運用変革ベースのデータベース

Linux で動作する運用変換をサポートするこの種のデータベースはありますか? レールアダプターも付いていると良いです。

CEDAは私が必要としている多くの機能を備えたものであることは知っていますが、Linux では動作せず、クローズド ソースであり、利用できる試用版もありません。

0 投票する
1 に答える
563 参照

clojure - Clojure Avout は、Google Wave の運用上の変換機能と機能的に同等ですか?

このGoogle グループのメッセージでは、著者は Avout という名前の Clojure ライブラリを Google Wave の運用変換機能と比較しています。

これらは機能的に同等であると言えますか?

その後、操作変換機能が Google スプレッドシートで使用され、今日のマルチユーザー機能が有効になったことを理解しています。

Clojure Avout をオンライン スプレッドシートの実装の一部として使用して、ユーザー間の状態を同期し、競合を (順番に) 解決できますか? (つまり、他のユーザーがセルの内容全体を削除する直前に、最初のユーザーがセルに文字を追加した場合、後の更新 (セルの削除) との競合を友好的に解決できるでしょうか?)

0 投票する
3 に答える
2284 参照

real-time - HTML などの構造化されたドキュメントを単純にプレーン テキストとして扱う場合、操作の変換は機能しますか?

Google Wave Protocol の FAQ には、[HTML] には「望ましい特性がない」、「HTML は OT (Operational Transforms) を不可能ではないにしても困難にする」[1] と書かれています。これはなぜですか?HTML を単純なテキストとして扱い、OT を適用すると、どのような問題が発生しますか?

  1. http://www.waveprotocol.org/faq#TOC-What-s-the-XML-schema-for-waves-Why
0 投票する
1 に答える
597 参照

meteor - Meteor の運用上の変革は間近に迫っていますか?

最終的に一貫性のあるデータ オブジェクトへのオフライン書き込みに対する Meteor のサポートを考えると、同じテキスト フィールドへの同時編集を自動的にマージすることは、自然な次のステップのように思えます。これは、 ShareJSなどのすべての操作変換ライブラリ (リスト)の一部を統合することによって行うことができます。

Meteor チームには、コア製品でこの機能をサポートしたいという要望がありますか?それとも、サードパーティのアドオン モジュールとして登場する可能性が高いですか?

また、ShareJS は実際に Meteor データ アーキテクチャの基本機能を提供しているように見えるので (彼らはドキュメントで、任意の JSON オブジェクトで動作すると述べています)、データの同期に ShareJS を使用して Meteor のようなことを行うことはおそらく可能でしょうか?

0 投票する
1 に答える
438 参照

operational-transform - ShareJSでネストされたJSONの削除

私は現在、操作変換(特にJSON API)のためのShareJS実装を実験しています。親JSONオブジェクトを削除するとどうなるかについて、Wikiはあまり明確ではなく、子JSONに挿入する別の操作が行われました。親JSONは再作成されますか、それともノーオペレーションになりますか?

例えば

0 投票する
2 に答える
1402 参照

meteor - Meteor.js での運用の変革?

Meteor.js は運用上の変革をまだサポートしていますか?

私はMeteor.jsを使用することを考えていたEtherpadに関連するプロジェクトに取り組んでいます(この種のプロジェクトに非常に適していると思います)。私のプロジェクトをスケーラブルにすることを考えると、運用上の変革は非常に重要です。私の現在の知識では、Meteor はそのままでは操作上の変換をサポートしていないことが示唆されています (ここで間違っている場合は訂正してください)。基本的に私の質問は、meteor.js で操作上の変換を実装する方法ですか?

Neil Fraserによるこのライブラリgoogle-diff-match-patchを使用してみましたが、パッチの適用中に問題が発生しました (meteor.js の外では非常に簡単に機能しましたが)。

提案はありますか?

0 投票する
3 に答える
1206 参照

real-time - Google ドキュメントの運用上の変革が削除の側でエラーになるのはなぜですか?

今日、この実験を試してみました。Google ドキュメント用に 2 つのオフライン エディターを開きました。1 つは、最初の単語を太字にしました。2番目に、私はそれを削除しました。どのクライアントを最初にオンにしても、単語は常に削除されてしまいます。

まず、なぜこのようなことが起こるのでしょうか。運用上の変革についての私の理解では、順序付けが重要であるということですか? 2 人がそれぞれ「a」と「b」を入力する単純な例では、サーバーが最初に「a」を受信すると、2 番目の人の「b」イベントを「pass one space」に変換して「ab」の出力を強制します。 、次に b" イベントを追加し、その逆も同様です。

第 2 に、順序が重要でない場合、Google ドキュメントが削除の側でエラーを選択した理由について、技術的な理由はありますか? それとも、その理由は主にユーザーにとって単純なのですか?