« March 2007 | Main | August 2007 »

April 23, 2007

WebORB(JP)

前回Rubyを(mt)上で動かし、gemをインストールするところまでテスト出来ているので、WebORBを使ってflashremoting経由で直接データをやりとりしてみる。今の時代flashサーバ間のデータのやりとりにxmlは必須ではない。むしろデータとしては冗長であり、flashremoting経由でAMF通信できることがこの上楽である。

WebORBのインストール
(mt)でセットアップする場合に限って、手順を説明する。 myrailsappという名前でアプリを作成する場合、まずサーバへsshでログインする。

cd $HOME/../../containers
mkdir rails && cd rails
rails myrailsapp
cd myrailsapp
ruby script/plugin install http://themidnightcoders.net:8089/svn/weborb
mtr -u serveradmin@60000feet.com -p <password> add myrailsapp $PWD weborb.60000feet.com
mtr -u serveradmin@60000feet.com -p <password> start myrailsapp
mtr -u serveradmin@60000feet.com -p <password> generate_htaccess myrailsapp
mtr -u serveradmin@60000feet.com -p <password> create_link myrailsapp
ここまでで、http://weborb.60000feet.comにアクセスできるようになる。

WebORBへの接続
最終的にはクラス化するのがいいが、接続テストなので説明用に簡単に書くと次のようになる。"http://weborb.60000feet.com/weborb"が、weborbのアドレスになり、実際にサービスを行うrbファイルを"FlexRemotingTest"と指定している。_svcがこのアドレスのこのサービスのプロキシとして働くので、プロキシに対してメソッドを呼ぶことで結果を取得できる。

import mx.remoting.Service;
_svc = new Service("http://weborb.60000feet.com/weborb", null, "FlexRemotingTest", null, null);
次にエコーテストをしてみる。サーバに値を送り、そのままその値をクライアントに戻す最も簡単なテストである。echoIntというメソッドが上記rbファイルに記述されているので、そのリモートメソッドを次のようにして呼ぶことが出来る。
import mx.remoting.*;
import mx.rpc.*;
var pc:PendingCall = _svc.echoInt(20);
function onEcho (re:ResultEvent){
   trace(re.result);//20
}
pc.responder = new RelayResponder(this, "onEcho", null);

April 21, 2007

pigbot考察(JP)

DAKARAサイトで使われた形態素解析によるキーワードマッチングの仕組みでは、効率よく画面遷移を行うためにstateパターンが使われている。画面は基本の3つから成っていて、各画面はそれぞれのstate(状態)クラスから生成され、各stateが一定の条件のもとで他のstateに遷移する。最初のkeystroke状態で、入力が確定されるとreflect状態へ遷移し、またタイムアウトするとstandby状態へ移りムービーが再生される。例えば、ユーザの操作によりこのスタンバイからkeystroke状態へ戻るという条件は、standby状態クラス内にあり、条件が満たされると状態遷移されるわけである。stateにより複雑な条件文をすべて排除することが出来る。OOPの場合、仕事をクラスに分散化させるとよいとされている。出来るだけ同じ(method)は抽出し、使わない場合はクラスから追い出し、別のクラスにする。

April 19, 2007

Ruby on Rails for mt Part1 (JP)

今主流のRoRを(mt)サーバで使っている場合の各設定方法について説明していく。基本は(mt)のknowledgeデータベースとブログなどを元にかみ砕いた(かみ砕ききってはいない)内容。

SSH
osxの場合、SSHKeyChainというソフト(universal)を使ってキーを管理する方法が一番楽。その方法はzigversionのサイトを参考にするとよい。

RoRのインストール
mtrは、mt専用のコマンド

$ mtr generate_config
$ mtr setup_rubygems
$ source ~/.bash_profile
$ gem update –system –source=http://gems.mediatemple.net/
$ gem install rails -y
$ gem install mysql –source=http://gems.mediatemple.net/
$ gem install daemons gem_plugin cgi_multipart_eof_fix -y
$ gem install mongrel –source=http://gems.mediatemple.net/