ようやく・・・というか、Kodougu の概要が未踏の公募結果のページに載りました。所属が前の会社のままだったり、書いてあることがちょっと胡散臭かったりしますが・・・。(^^;

ITPro の記事によると、Safari 3 のベータ晩が公開されていますが、Windows にも対応しているそうです。日本語など問題もあるようですが、Kodougu の英語版のみテスト対象に加えても面白いかもしれません。つーか、テスト対象に加えます。
# dojo.gfx とかまず動かなさそうですけど。

Posted by あかさた
2006 年度下期未踏ソフトウェア創造事業で開発している Web 上で動作するモデリングツール Kodougu の近況を書いてみます。

最新の Kodougu。IE/FireFox で動作。


(1) IE に対応
動作がかなり重い、まだバグバグであるという問題はありますが、これまでは FireFox 1.5/2.0 のみだった動作環境に IE6/7 が追加されました。未踏開発期間中(2006/11 ~ 2007/8 末まで)では、Opera 9.2 への対応を考えていますが、IE/FireFox が基本的なプラットフォームとなります。

(2) 操作性の改善
図上で要素を選択して Delete キーを押すと要素を削除できますが、これまでは、キーを押しても動作したりし無かったりという問題がありました。現在は解決されています。また、Shift キーを押して要素を選択すると複数個の要素が選択できます。

(3) サーバのパフォーマンス改善
図のページを開く際、サーバサイドでは、秒間 2 リクエストも処理できなかった(つまり、一つのサーバで秒間 2 枚図を開けなかった)のですが、秒間 5 ~ 6 枚はいけるようになりました。

(4) デモサイトの作成
現在作成中です。以下からアクセスできますが、現在は英語のみ、いつデータが消されるかわからない、かなりバグバグという問題があるので注意してください。

Kodougu.net(現在、英語のみ)
http://www.kodougu.net/

Posted by あかさた
Kodougu を comet 実装してみました。例によって FireFox 以外の動作はしません(IE や Opera でも表示は可能、一部操作もできてしまうがバグバグです)。ブラウザを二つ起動して、片方を操作するともう片方もリアルタイムに・・・。

試してみたい方は、こちらを参照してください。(英語のみ。)

近いうちに Kodougu のモデリング言語設計機能を紹介したいと考えています。がんばって実装しないとナー。

Posted by あかさた
trac に Kodougu を組み込むための trac macro を作成しました。All-In-One Trac v0.1.1(trac v0.9.5)で動作確認を行いました。英語の情報との格闘でしたが、作成自体は簡単でした。ただ、trac v0.10.x や v0.11.x 以降で動作するかは自信がありません。大きな流れで言うと、trac の wiki マクロは trac plugin に統合されていくようなので。

以下のように書くと、trac に Kodougu を組み込むことができます。数値は、ダイアグラムの ID です。

trac/wiki の記述例([]は全角になっています。)
[[Kodougu(2)]]

trac に Kodougu を組み込んだスクリーンショット
1176850434_20070418_02.png

「<<All-In-One Trac インストールフォルダ>>\python\share\trac\wiki-macros\Kodougu.py」のソースコード([]は全角になっています。)
import re

def execute(hdf, args, env):
	if not args:
		args = 'err'
	args = re.split('\s*,\s*', args)
	if re.search("[^0-9]+", args[0]):
		return '[Kodougu] Wrong Parameters! - ' + args[0]
	else:
		return ''

trac の Wiki マクロの作成も非常に簡単で、マクロ名.py の内部に execute 関数を実装するだけです。

これで、Kodougu と著名な(≒私が好きな)Web アプリケーションとの統合は完了しました。Kodougu もサーバーサイド(Ruby on Rails)はかなり出来上がってきたので、これからはクライアント(JavaScript)の開発に注力します。

Posted by あかさた
今日は早起きして pukiwiki(1.4.x 向け)で以下のように書くと、Kodougu が組み込まれるプラグインを作成しました。朝食までにプラグインの作成方法を勉強するつもりが、ホンチャンコードまで書けてしまいました。これぞ朝飯前・・・ですかね。(^^;

#kodougu(2)

pukiwiki に Kodougu を組み込んだスクリーンショット
1176841541_20070418.png

プラグイン「kodougu.inc.php」のコード(下記コードは[]が全角になっています。)
'
			. 'Kodougu is not available!';
	}
	else {
		return 'Kodougu is not available!';
	}
}
?>

pukiwiki のプラグイン開発は非常に簡単で、上記のようなコードを書いて plugin フォルダにコピーすればできてしまいます。後は trac 用の plugin を書きたいところです。

さて、Kodougu 1.0α1 公開まで後もう少し。がんばらねば。

Posted by あかさた
今日は未踏の千葉 PM とのミーティングに行ってきました。Kodougu については、細かな進捗というよりは、プロジェクトの根本的なリスクについて話し合ってきました。

話した内容は以下のとおりです。
・ 進捗
・ モデリング言語設計機能に関する実現方法と実現可能性について
・ プロジェクトというか、Kodougu が抱える根本的なリスク

進捗は・・・ぼちぼちでんなー、ということを話してました。(--; 実現可能性についてはさほど問題はなさそうという共通認識が PM と取れるようになってきました。ただし、仕様については割り切り重要。

Kodougu が抱えるリスクについてですが、指摘をまとめると、「Kodougu は一見するとモデリングツールっぽく使えるお絵かきツールに見えてしまうので、そうではない点を説明できる機能なり効果的なユースケースなりを示せるようにしてほしい」ということです。4 月末に中間発表があるので、そこである程度この問題点を解消したいと考えています。

今日発見したこと。
・ 千葉 PM 下 4 人の採択者のうち 2 人は私の家から結構近いところに住んでいる。(驚)

ローカルな話題でちょっと盛り上がってしまいました。(笑)

Posted by あかさた
もうすぐ朝・・・か。二日連続徹夜・・・。orz

Kodougu を IE でも表示できるようにしました。こちらのエントリを参照してください。
# 表示だけで、操作は一切できません。

さて、IE で表示するにあたって、壁は二つありました。
(1) VML 描画
(2) Ajax では、別のドメインにアクセスできない(セキュリティのため)

(1) ですが、これは 30 分ほどでできました。もともと、アーキテクチャ的にさまざまなレンダリングエンジンを使うことを想定しているので、VML を増やしても特に問題は発生しません。テストはちゃんと書いていないので、後で書きます。

(2) ですが、Kodougu を Web アプリに組み込むときは、JavaScript を使っています。もともと、JavaScript でブラウザを判定してから、prototype.js の Ajax.Updater で SVG/VML を取得しようとしたのですが、Ajax ではドメインを越えてデータにアクセスすることができません。ちょっとトリッキーな方法で切り抜けてみました。(後で調べたところ、割と王道のようでしたが。)

コードとしては以下のとおりです。
[code: 

]

解説します。以下の URI は、JavaScript を返しますが、この中で SVG/VML の情報を保持した kodougu_diagram_html という変数を(JavaScript で)定義しています。
http://www.kodougu.net/rendering/diagram_javascript/1

以下の一行で、HTML に SVG/VML を埋め込んでいます。
$("test_kodougu").innerHTML = kodougu_diagram_html;

つまり、JavaScript はドメインを越えて情報を取得することはできませんが、JavaScript そのものは他のドメインから持ってこれるので、動的に必要な情報を含んだ JavaScript を返す API を作ったというわけです。

あー、疲れた。(--;

Posted by あかさた
Kodougu を既存の Web アプリケーション(今は私のブログ)に組み込むテストを行っています。Firefox であれば、下にモデリングツールが表示されると思います。(IE では何も表示されません。)
今できるのは、要素・関係線の作成、削除、移動だけで、要素名の変更もできません・・・。(しかも、まだバグバグです。^^;)



さて、それほどがんばらなくても Firefox 向けであれば、HTML に object タグを書くだけで既存の Web アプリに組み込めます。IE 向けは少し難しいかもしれません。IE では、VML を使うのですが、VML を使うときは HTML のヘッダにいくつかの情報を記述しなくてはならないため、既存の Web アプリに対する影響が大きいのです。

どうしたものか・・・。

Posted by あかさた
Kodougu の最新のスクリーンショットです。図上で要素と関係線の作成/削除/選択/移動を実現しました。図上で行う最低限の操作が実現されました。

1171357684_kodougu_20070213.png

動画はこちらにあります。(ちょっとカクカクしていますが・・・。)

ここまで、クライアント側(JavaScript)は 500 行弱、サーバ側(Rails)は 1500 行程度と、非常にコンパクトに実現できています。3月にはデモサイトを構築したいところですが、はてさて・・・?

Posted by あかさた
図上で要素の作成/選択/移動/削除を作成しました。現時点でのスクリーンショットは以下のとおりです。

2007/2/7 時点の Kodougu のスクリーンショット

ここまで、クライアント側(JavaScript)は 300 行弱。全機能を実装しても 1000 行程度に収まるんじゃないかと。サーバー(Ruby on Rails)側もまだ 1000 行前後だと思いますし。JavaScript + Ruby on Rails の組み合わせは恐ろしいほど生産性が高いですね。。。

FireFox 版 Kodougu は、3 月末にはリリースしたいと考えています。がんばらねば。

Posted by あかさた