Squeak で説明しても WikiPhone の面白さがいまいちよく分からないと思うので、Ruby 1.8.5 で簡単な WikiPhone クライアントを実装してみます。今回出力する側と入力する側を別々に作ってみましたが、どちらも 40行ちょっとで書けます。

パイプとしての WikiPhone WikiPhone は、ここでは単なるパイプのように振舞います。URL は、WikiPhone サーバ内であればなんでも使えます。メッセージの送受信はこのようにします。 送信側 $ echo "Hi there" | ./wpput.rb http://languagegame.org:9090/chat 受信側 $ ./wpget.rb http://languagegame.org:9090/chat Hi there

Ruby + WikiPhone でファイル転送 WikiPhone をファイル転送に使ってみます。受信側から起動します。 $ ./wpget.rb http://languagegame.org:9090/chat > dst.html 次に送信側を起動します。 $ ./wpput.rb http://languagegame.org:9090/chat < src.html ダサいですが、ファイルを受け取ったと思ったら受信側は自分で Ctrl + C します。

Ruby で IP 電話??? さて、いよいよ Ruby だけで VoIP の実験です。/dev/dsp をそのまま使います。送信側から。 $ ./wpput.rb http://languagegame.org:9090/voip < /dev/dsp 受信側です。 $ ./wpget.rb http://languagegame.org:9090/voip > /dev/dsp