タグ

javascriptとdiffに関するt_43zのブックマーク (3)

  • MOONGIFT: » JavaScriptでDiff「JSBlend」:オープンソースを毎日紹介

    ぱっと見、簡単そうに見えてその実、意外と大変なのが差分を表示する処理だ。マシンパワーも意外と使うので、油断ならない。だが、Web上で共有したりコラボレートしたりするアプリケーションが増えている現在にあっては、重要な機能になっている。 手軽に実装する方法は、既存のライブラリを使うことだ。それも、サーバサイドでなくクライアントサイドで。 今回紹介するオープンソース・ソフトウェアはJSBlend、JavaScriptで実装されたDiffソフトウェアだ。 JavaScriptでDiffを実装すると言うのは以前紹介したgoogle-diff-match-patchや、「Javascriptでdiffる ( with 形態素解析 ) (nakatani @ cybozu labs)」等で試みられている。JSBlendが凄いのは、ただDiffだけでなく、マージにも対応している点だ。比較は文字単位で行われ

    MOONGIFT: » JavaScriptでDiff「JSBlend」:オープンソースを毎日紹介
  • Javascriptでdiffる ( with 形態素解析 ) (nakatani @ cybozu labs)

    Javascript で diff というのはいくつか試された例はあるようですが、まだこれといった決定打は出ていない様子です。 実は diff は見た目ほど軽い処理ではないので、Javascript にやらせるのはこれが結構大変…… diff の計算量は、おおざっぱに言うと比較対象の要素数の二乗に比例し(実際にはそれより小さくすることができるのですが、まあ話のイメージとして)、かつメモリを大量に消費するので、バッチ的な処理に最適化されていない Javascript にはどうしても荷が重いものとなってしまいます。 比較対象の要素数を減らせば当然計算量は減りますが、行単位で比較してもあまり嬉しくない(わざわざ Javascript で処理するということは自然文が対象と思って良いでしょう)。最小の文字単位だとギブアップ。 ということは形態素解析で分かち書きして、単語単位で diff するのが J

  • JavaScript/Java/PythonでDiff·google-diff-match-patch MOONGIFT

    ※画像は公式サイトデモより 最近、自作でWikiエンジンを書いている。Wikiの三大要素(?)として必要なのは、ページがない場合の自動生成、HTMLを記述する事無く記法によって生成される文章、そして不特定多数が編集するための履歴管理機能だ。 履歴管理をする以上、リビジョンの比較ができなければ意味がない。更新の衝突が起こった場合も必要だ。その際に非常に便利なライブラリがこれだ。 今回紹介するオープンソース・ソフトウェアはgoogle-diff-match-patch、各種言語による差分表示ライブラリだ。 google-diff-match-patchはその名の通り、Google謹製のライブラリだ。何と、Webベースのドキュメント作成ソフトウェア、Google Documentsでも使われている代物だ。 提供されているのはJavaScriptJavaそしてPython向けのソースになる。特に

    JavaScript/Java/PythonでDiff·google-diff-match-patch MOONGIFT
    t_43z
    t_43z 2007/06/11
    Google製のJava/JavaScript/Python向けのDiffライブラリ
  • 1