cometd を使ってみたという記事で、dojo 0.4.2 + cometd のセットアップ方法を記述しました。dojo 1.0 が出て、多少状況が変化したようなので、Kodougu で行った作業をもとに cometd のセットアップ方法を整理して掲載します。

続きを読む

Posted by あかさた
私は趣味で Rmake という RPG 作成ソフトを開発しています。このソフトを開発する際に使っている手法を紹介します。

続きを読む

Posted by あかさた
Rails勉強会@東京第25回のポジションペーパ。今月こそは参加するぞ!

ポジションペーパ(PNG)

■ 追記(2007/12/17 2:14)
今回も行けませんでした。orz

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 あかさた
C# でオープンソースとして開発している RPG 制作ツール RmakeDycoon 氏 に使ってもらいました。かなりいやらしい使い方をしてくれたようで、致命的なバグをいくつか発見してくれました。(ユーザビリティ上の問題点もたくさん挙げてくれました。)いわゆる小規模なベータテストというやつです。

これまで自分でドッグフードしてきましたが、品質の改善には限界があるなとつくづく思いました。なにより、開発者よりもユーザーの方がヘビーユーザーになる可能性の高いツールなので、ドッグフードのやり方では、普通のテストでは見過ごしてしまう重要なバグを見つけきれないという問題もあります。

やはり品質を上げるには、使ってもらうのが一番なんですよね。開発途上版を使ってくれる人なんてそうそういないでしょうが。。。

Rmake は(ソースコードも含めて)こちらから入手できます。現在、アルファ版です。

Posted by あかさた
今、Kodougu の dojo を 0.4.3 から 1.0.1 に上げる作業をしています。その過程で見つかったちょいネタです。DojoX に含まれる Dojo Strage は Google Gears をラッピングしているそうです。夢が広がるなぁ・・・。

例:
dojox.storage.put("someKey", "someValue");


SQL 直打ちも可能:
var results = dojox.sql("SELECT * FROM DOCUMENTS");


情報元は The Book of Dojo です。
http://dojotoolkit.org/book/dojo-book-0-9/part-5-dojox/dojo-offline/storing-offline-data

■ 追記(2007/12/5 15:48)
以下から読み始める方が、理解が深まります。
http://dojotoolkit.org/book/dojo-book-0-9/part-5-dojox/dojo-offline

Posted by あかさた
via Dojo/JavaScript Toolkitのメモ

Dojo UML(リンク先は結構重いので注意) というものがあるみたいです。Kodougu と同じく Dojo Toolkit を使っているそうです。Web 上でベクターグラフィックスなんて結構楽勝な時代になったってことか。

Posted by あかさた
CodeRepos というリポジトリ共有サイトがはやっているようですね。参加している人であれば誰でもコミット可能という何とも素敵なサイトです。実際、ここまでオープンなリポジトリ共有サイトを使ったらどういうことになるかは分からないので、一回使ってみたいものです。

そのまま入れられるかわかりませんが Rmake をコミットしてみようかなと考えています。C# だと dis られるかと思いましたが、意外と C# のコードも入っているみたいです。これはこれで楽しそうです。

■ 2007/11/22 追記
コミット権もらいました。対応早い・・・。ありがとうございます。

以下自己紹介ページです。(まだほとんど何も書いてないけど。)
http://coderepos.org/share/wiki/Committers/akasata

Posted by あかさた
ソフトウェア開発における「ドッグフードを食べる」とは、ソフトウェアの開発者もしくはその会社が、自分たちが開発したソフトウェアを実際に業務などで使用することです。要は自らを実験台にするわけです。有名なのはマイクロソフトのドッグフードです。どこよりも早く MS 製品を使い始めるわけですから、命がけ(?)ですね。(^^; それゆえあれだけ複雑な製品をそれなりの品質で提供できているともいえます。

ソフトウェアをドッグフードしなければいけない理由より

ソフトウェアのドッグフードというのは、開発を継続できる最大の武器だよね。自分がアプリを開発していけるのは、自分で日常的に使ってるから、というのが大きい。バグだってどんどん見つかるし、改善すべき点も見えてくる。自分は使わずに誰かの為に開発しているソフト、なんてものを私は信じない。何年何十年と粘着的に考え続け使い続け、開発するからこそ見えてくる何かがあるはずだ。


自分は使わずに誰かのために開発しているソフト、例を挙げると「オーダーメイドの業務アプリ」です。システムを内製できる会社はそれほど多くないので、業務システムは外部の企業に発注するわけですが、そうした請負の会社でドッグフードして実業務で使用してから納品なんて話はあまり聞きません。(「あまり」と書いたのは、システムそのものをドッグフードしないのであれば、たとえばソリューションのドッグフードなどは行われているケースがあるからです。)

続きを読む

Posted by あかさた
Rails勉強会@東京第24回用のポジションペーパです。

PNG 形式のポジションペーパ
PDF 形式のポジションペーパ

■ 2007/11/18 追記
今回の勉強会は所用ができて、結局いけませんでした。orz

Posted by あかさた