Ajax とかではないのだけれども、定期的にサーバに問い合わせをして結果を見て処理を行う Web ページを作る必要があるので、Prototype JavaScript framework 1.4.0 を使ってみた。
とりあえず Ajax.Request と PeriodicalExecuter と $A を使っただけだけれど、これだけでも便利さが感じられた。 生で XMLHttpRequest 使うより楽ちん。
Ajax を使うプログラムを書くことになりそうなので、どうせならサーバーサイドも JavaScript で書けないかなと調査。 有名どころの JavaScript エンジンというと SpiderMonkey なので、まずはこれでいけるか確認。
Debian GNU/Linux sid だと spidermonkey-bin パッケージに JavaScript shell プログラム smjs (js) が含まれている。 とりあえずコマンドライン引数 (arguments)と環境変数(environment)と標準入力(readline())から入力ができて、標準出力に出力 (print()) ができるので、最低限の CGI プログラムは書けそうだ。
ただこれだけでできる範囲のことなら、クライアントサイドでできてしまう。 単独だとあまり意味ないな。やはり embedded 用か。
Perl の JavaScript::SipderMonkey モジュールや JavaScript モジュールを使うと Perl のサブルーチンを JavaScript プログラム側から呼べる関数として与えた中で JavaScript を実行できるのでいろいろ遊べるようになる。 ただこれだと、Perl で書いちゃった方がよっぽど楽。
パケ・ホーダイを契約してから、MovaTwitter・RTM・モバイル Gmail などで携帯電話を活用するようになった。そんななか、決定打がないのが、ノートアプリケーション。電車の中などの隙間時間に、この nDiki の 下書きなどはケータイでできるようにしたい。
Google ドキュメントが使えればいいが、前年ながらまだiモードでは使えない。 メールベースでやる手もあるが、メモには良いものの再編集を繰り返したいようなものに難がある。
ということで自前でプライベート Wiki を立てそこに書き込んでみることにした。
使う WikiEngine はいつも通り自作の WiKicker。
書き込んだテキスト内のキーワードを nDiki へ自動リンクさせることができるので、パーソナルナレッジベースとして自分にとっては一番便利。書式も同じなので、Wiki に書いた下書きを、そのまま nDiki で使える。
肝心のケータイからの書き込みだが Ajax 等凝った技術を使っていないおかげで、問題なく FOMA 端末(D703i)からiモードで読み書きできた。WiKicker は UTF-8 でページを出力しているが、網側か端末側の処理かは知らないが今のところ問題なし。
なお認証は簡単に Basic 認証で済ますことにした。 安全とは言えないがそれほど重要なデータを置くわけではないしいいかな。 cookie は必要ないし WikiEngine に手を入れなくてもよいので、すぐできるのはコレ。
ユーザ名とパスワード付きのトップページ URL を端末でブックマークしておけば1発でアクセスできる。
これでケータイ(と PC)から使えるプライベート Wiki を設置できたわけだが、なにぶんもともとケータイをサポートしている WikiEngine ではないため、長いページの分割機能などはないのがちょっと不安。PageName で生成される URL が長くなった時の振る舞いもちょっと不安。
そこで Google Mobile Proxy (http://www.google.co.jp/gwt/n) 経由で Wiki を使うことにした。 ページを携帯端末向けに変換してくれる proxy で、Basic 認証もできるしフォーム の POST もできる。
Google Mobile Proxy 経由で見たページ内のリンク先も全て自動的に proxy 経由になるので、 PC 向け Web ページの URL を書いておけばそのまま携帯電話で見ることができる。
安全のためか、比較的短い一定時間立つと認証の再確認画面が表示されてしまうが、ユーザ名とパスワードを入力すれば、セッションは継続される。 テキスト編集に時間がかかってしまうと POST する時にひっかかってしまい認証の再入力がちょっと面倒だが、再認証が通れば POST リクエスト自体は有効で書き込みがロストすることはないようだ。
しばらくはこれで読み書きしてみよう。
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。