■2005-03-13
* [Perl] JSON
SAJAX や JSON-RPC あるいは JavaScript ライブラリでJSON-RPCというのを知りました。色々あるんですね。JSON関連のモジュールがCPANにないようなのでとりあえずてきとうに自作。
use JSON;
use strict;
my $obj = {
id => ["foo", "bar", { aa => 'bb'}],
hoge => 'boge'
};
my $js = objToJson($obj);
# {"id":["foo","bar",{"aa":"bb"}],"hoge":"boge"}
$obj = jsonToObj($js);
# 復元
# あるいは
$json = new JSON;
$json->jsonToObj({num => JSON::Number(1.23)});
# ↑通常、数値やundefなどは自動変換ですが、
# 明示的に指定可能(他にtrue,false,null)
てな感じで。あとは誰かがJSON-RPC用のモジュールをつくってくれれば。パース部分はParse::RecDescentで実装してるので大層遅いです。プリコンパイルすればちょっとは速くなるかも(jsolaitのを移植すれば良いかな)。
結局実験用にJSONRPCモジュールをこさえてしまいました(誰かちゃんとしたのつくって!)。ソースぐだぐだな上にCGIとしてしか使えませんけど。
# アプリケーション
package MyApp;
sub echo{ # 第1引数を返すだけ
my $server = shift;
my ($arg) = @_;
return $arg;
}
# メインのCGI
use JSONRPC::Transport::HTTP;
use MyApp;
# XMLRPC::Liteチックで粋でしょ?
JSONRPC::Transport::HTTP::CGI
->disptch('MyApp')->handle();
実際稼働中の与えられたテキストを返すechoメソッドを実装したJSON-RPCサーバが http://www.donzoko.net/cgi-bin/jsonrpc/jsonrpc.cgi にあります。
* [雑感] 思いでのマガジン
タイムスリップグリコ 思いでのマガジンの「花とゆめ」(1985年)を目当てにここ暫く買っていたのですが、やっと出ました。POPEYEとOliveと鉄道ファンだらけになりましたが。巻頭が「Intolerance(以下略)」ってのがすごい。あの作品はある意味川原節全開。星野架名とか本橋馨子とかが滅茶苦茶懐かしい。私が読んでいたのは90年代でしたが、結構絵柄が違ってるものなんだなあ。
* [メモ] ネットでTRPG
ネットでのTRPGを考えてみたのですが、チャットでTRPGってのはまぁ良くあるので、折角だからもう少し大規模にやってみたい。共通の都市なり国家を設け、その中に存在するNPCや冒険の舞台、ハウスルールを共有して、GMがシナリオに必要なものをレンタルして適当にアレンジし、冒険が終わったらその影響を経歴やマップに書き込み、次のGMがそれをレンタルしてシナリオを考える(昔のRPG本を読むその2:サロン・ド・よしだ分館)
うまくまとまったら非常に面白そう。課題としては、共通のフォーマットが必要だとか、管理者がえらく大変そうとか。でも何かできそうな気がしますね。先だってのNPCのFOAFとか使ったり。共通に使うフォーマットとして何かないかな? 例えばXML for RPGとか。 と思ったらありました。探せばあるものですね(って探してませんが)。RPG in XML ……ちょっとやるせない気持ちになりました。
話は変わりますが、『クロちゃんの千夜一夜』は続いて欲しかったなあ。
【JSON】CPANのJSONに引き続き、PHPのPEARにあるJSONを試してみました。 http://jsgt.org/ajax/ref/test/php/pear/JSON/pear-json.php PHPのPEARでJsonフォーマットのデータに変換した時、PerlのCPANとは順番が異なりますね。ま、JavaScript側でなんとでもなりますから、..

