今まで作ってなかったのが不思議なくらいでしたが、某本の執筆で必要になったので、Kodougu にロバストネス図をつけました。とりあえずクラス図由来のものを作っています。コミュニケーション図由来のものも近いうちに出したいと思います。

ロバストネス図のサンプル

続きを読む

Posted by あかさた
InfoQ という技術系情報サイトに Kodougu の紹介記事を書きました。主に trac/pukiwiki のようなウェブアプリケーションに Kodougu のモデリング機能を組み込んだらどうなるかという視点で書いてあります。

ソフトウェア開発におけるウェブベースのコミュニケーションにモデリングを導入する
http://www.infoq.com/jp/articles/webmodeling_kodougu

あと 2 本程度記事を書く予定ですが、次回以降は Kodougu の内部技術や、Kodougu キモでありある意味ダークサイドな機能であるモデリング言語設計機能の紹介をします。

Posted by あかさた
Kodougu に折れ線を実装しました。まだ折れ線が交差したときの処理は実装していませんが、「関係線をドラッグ&ドロップすると折れる」「角に表示される選択矩形をダブルクリックすると角を削除する」「角に表示される選択矩形をドラッグ&ドロップすると角の位置を移動する」機能を実装しました。

続きを読む

Posted by あかさた
Flash 版 Kodougu の提供を開始しました。といっても IE 限定ですが。当面は FireFox は JavaScript/SVG、IE は Flash クライアントを併用することになります。

まだ試験運用中ですが、速度は従来と比較して 5 ~ 10 倍くらいになっていると思います。

続きを読む

Posted by あかさた
今、Kodougu のサクサク感向上開発をしているのですが、なかなか出来あがらないので、現実逃避(?)にアクティビティ図を作ってみました。結構、いい加減です。

作成時間は 15 分くらいです。年度内にはパフォーマンスを劇的に向上したクライアント(IE 向け)とメタモデリング機能を一般公開したいのですが、できるやら。。。

続きを読む

Posted by あかさた
Kodougu において、「編集ウィンドウを開いた状態で Del キーを押すと図上の要素が消える」というバグを修正しました。

【Bug】編集ウィンドウ上で Del キーを押下すると、図上の要素が消える
http://www.kodougu.net/p/kodougu/ticket/show/21

GUI アプリケーションの状態管理がうまくいっていなかった例です。「特定の状態時」に「どのような操作」を許可するのか、しっかり分析しないと、実行して欲しくないタイミングで拾って欲しくない操作を拾って実行してしまいます。

Command パターンか何かで処理を実装するようにして、Command の実行条件に GUI の状態を指定できるようにするようなフレームワークを作った方がいいのかも。今は何もかもを押しつけられたスパゲティな「Controller」になってしまっているので。


Posted by あかさた
Kodougu で PNG 出力機能の実装を開始しています。なんかぼやけてて、バグバグで、文字化けしてますが、少しずつ前進しています。

以下のような URL を入力すると、Ruby/GtkMozEmbed を使って図のスクリーンショットを撮るというやり方をしています。
http://www.kodougu.net/p/kodougu/diagram/png/82

続きを読む

Posted by あかさた
はてなハイク(俳句)って私はロムっているだけですが、すごく面白いですね。楽しみ方としては、お題を決めて、短文(五七五である必要はない)か落書きを書き連ねていく(読む側としてはそれを見ていく)だけなのですが、ざぶとん X 枚とばかりにはてなスターをつけることもできます。サクサクと書けてサクサクと読めるのも魅力なんでしょうね。

スターのたくさん付いたエントリをピックアップする機能とか、デイリーのランキングとか、マイリストみたいなものができてくると、あとで見返せていいかも。ネタが秀逸だと、流れていってしまうともったいないとか思うので。(そういう一期一会的な楽しみ方なのかもしれないですが。)

Kodougu でもお題を切って図を描けると面白そうですね。「会員管理システムのクラス図は?」みたいなお題になりそうですけど。(^^;

Posted by あかさた
Kodougu で使っていた dojo を 0.4.3 から 1.0.1 に上げました。0.4.x から 0.9 の段階でドラスティックに変わっていたので、Kodougu の JavaScript は 3000 行に満たないのですが、移行にかなり手こずってしまいました。

まだ、運用環境にはアップロードしていないのですが、大半の機能は動くようになったので、作業ログと感想を載せておきます。

作業環境:Firefox で移行作業を完了させてから、 IE での確認。

■ 疑問と感想
(1) イベント系について
イベント系が dojo._base に組み込まれたのはなぜでしょうか。個人的には従来の名前空間(dojo.event.browser)でもいいかなと感じました。それとも、よく使うものだから dojo 本体に入れ込んだのかな・・・?

(2) dojo.io.bind について
敢えて specific な構造(従来は dojo.io.bind という抽象的なメソッドだったのが、dojo 1.0 では、iframe や XMLHTTPRequest などのプロトコルごとにメソッドが準備されている)に変更されたのは・・・まぁ、なんとなく理由はわかりますが、従来の「とりあえず bind」でもよかったかなという気もします。

(3) dojo.io.FormBind が無くなった
また、dojo.io.FormBind がなくなったのが痛かったです。dojo.io.FormBind は、既存の Form の Submit ボタンが押されたイベントを拾って、Ajax 方式でリクエストをサーバに送信してくれるクラスです。

対策としては、Dojo の Form には、Form の Submit ボタンを押すと実行される OnExecute というイベントがあります。Form.execute というメソッドをオーバーライドして、ここで、xhrPost(Ajax)を送信するようにしました。このため、Rails の Form といまいち相性が良くありません(※)。もしかすると、Form 系は Rails を使わずにすべて dojo でやってしまうのも手かもしれません。Kodougu では、Rails で Form の外枠だけ作って、あとから dojo の Form 系 Widget を生成しています。

※ dojo 使っている時点で、Rails の Ajax 系ヘルパーをそのまま使うことはあきらめるしかないのですが。そのうちだれかが何とかしてくれるでしょうけどね。

(4) 感想
0.4.3 から 1.0.1 と、かなり隔たりのある更新作業だったので、正直大変でした。それでも、感覚としては、「ドラスティックな変更の割には、今のところ互換性による影響はそれほど出てない」と思います。(一番困るのは、「××が廃止されたから○○はできません」みたいなことが起こることですが、それはありませんでした。)dojo もいろいろな意味で品質が上がってきたのかもしれません。

dojo.collections -> dojox.collections のような変更が続くなら、バッドノウハウであるコンストラクタをラッピングするだけの Factory を作りたくなりました。ま、作らないと思いますけど。

続きを読む

Posted by あかさた
ここしばらく、Kodougu の IE における高速化を行っていました。これまで、Kodougu の IE 対応は機能カバー率こそ 100% であるものの、速度は Firefox の 1/10 以下という非常に舐めた状態でした。機能カバー率は 50% 程度であるものの Opera 対応の方が実用性が高いかもしれません。

私が IE というものを分かっていないせいだろうと思っていたのですが、どうも調べれば調べるほど、dojo 0.4.3 の dojo.gfx が怪しいということになってきました。(dojo 1.0 が出た時点でやたら古いものを使うなって話ですが。)そこで、 dojo のどこが遅いのか調査してみることにしました。

続きを読む

Posted by あかさた