効率的な共同テキスト編集:CRDT実装

2025-08-20

この記事では、YjsやAutomergeのような一般的なライブラリで使用されているアプローチと同様の、CRDTに基づく共同テキスト編集アルゴリズムについて説明します。各文字には一意の識別子(サイトIDとクロック)が割り当てられ、ツリーベースのインデックスとカウンターを使用して文字がソートされます。削除は、文字の識別子を削除済みセット(墓石)に追加することで行われます。連続した挿入の結合、連続したブロックの保存、削除済みセットに対する範囲ベースの表現などの最適化により、効率が向上します。これにより、大量のテキストの貼り付けや同時編集も効率的に処理できます。

続きを読む
開発

驚異のWebGL水面シミュレーション:レイトレーシングとハイトフィールド

2025-05-10

Evan WallaceによるWebGL水面シミュレーションデモは息を呑むほどです。リアルな反射と屈折のためにレイトレーシングを使用し、分析的なアンビエントオクルージョンとハイトフィールド水面シミュレーションを組み合わせることで、生き生きとした輝く水面を作り出しています。ユーザーはインタラクティブに波紋を作り、カメラを回転させ、照明や重力を制御することもできます。このデモは強力なグラフィックカードと最新のドライバーを必要としますが、そのビジュアル結果は驚くべきものであり、WebGLの可能性を示しています。

続きを読む