memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

Ruby-Processingを少し


時間があったのでprocessing.orgをじっくり眺めていました。。。*1


アレレ?Related InitialitvesにRuby-Processingなるリンクがありました。


以前、jruby+processingで遊んだことがありましたが。。。それと違うんかいな?と。とりあえず試してみることに。


セットアップはめちゃ簡単。こちらのページの通りに打ち込めば動作します。サンプルを1つ2つ動かしたあと、以前、jruby用に作成したソースを移植してみることに。


移植は簡単です。わかりにくいですが。。。差分は以下だけ。jruby版とruby-processing版をdiffした結果が以下です。ruby-processingでは、以下のような特殊なコードが不要になり、processing本来のコードだけの記述で動作するようになります(というかそれを狙ったパッケージということかと)

> require "java"
> include_class "processing.core.PApplet"
> class Sketch < PApplet
> end
> JFrame = javax.swing.JFrame
> frame = JFrame.new "Sketch"
> applet = Sketch.new
> frame.content_pane.add applet
> frame.default_close_operation = JFrame::EXIT_ON_CLOSE
> applet.init
> frame.pack
> frame.visible = true


macで試したのですが、コマンド一発でappを作成することができます。また、ネット上で公開するためにappletを吐き出すこともできます。吐き出したappletはコチラです。processing通常版よりローディングに時間がかかるようです。時間にして30秒くらい。大学の回線速度の問題かもしれませんがじーーーっと待ってください。画面上でマウスでドラッグすると線が書けます。しょうもないプログラムですが、とりあえず動作することは確認できました。


これまたどう使うか。。。ですね。昨日のProcessing.jsにも言えますが、スクリプト言語ですから、Javaとは違って、ブラウザ上で作成・デバッグ・公開するようなサービス(wonderflのような)が簡単に構築できそうですね。


Processing.jsもruby-processingもそうだけど、うまく特徴を利用したサービスってないのかなぁ?

*1:子供との約束で土日はPCしないと決めたのですが。。。今週は少し破ってしまいました。。。反省>自分