hirax.net::inside out::2010年05月04日

最新記事(inside out)へ  |   年と月を指定して記事を読む(クリック!)

2010年4月 を読む << 2010年5月 を読む >> 2010年6月 を読む

2010-05-04[n年前へ]

IronRubyとJavaScriptでMathematicaフロントエンドを書いてみる(修正してみる) 

 以前、IronRubyでMathematicaのフロントエンドを作ってみました。以前作成したコード(JavaScript部分)にバグがあったこともあり、今日は少し手直しをしてみました(Mathematica Playerでも動作するコードになっていますが、Mathematicaのライセンス上、PlayerでないMathematicaに付属するKernelとともに使うことを前提にしています)。今日書いたコード・ファイル類は、ここに置いておきます(mathnode.rbの6行目には、あなたの環境のMathematicaKernel.exeパスを記述してください)。また、(ファイルに添付してあるリンク先から)Wolfram.NETLink.dll をダウンロードし、スクリプトと同じフォルダに入れておく必要があります。

 今日修正した部分は、「処理する数式をエンコードするJavaScriptコード(encodeURIComponent関数) を書き忘れていたこと」「WEBページのカスタマイズをしやすいように、RubyコードとHTMLコードを分離したこと」「(前述対応およびスレッドが1つしかないことによるデッド・ロックを防止するように)Webrickのコードを書き変えたこと」になります。ちなみに、前回作成したコードだと、処理する数式をきちんとエンコードしていないため、演算子などの処理に誤りが生じ、たとえば、3+2を解かせると、(恐ろしいことに)6という答えが返ってきてしまいます。

 また、今日作成したHTMLコード(index.html)の冒頭部分には、スタイルシート(css/hatena/hatena_ryukyu-green/hatena_ryukyu-green.css)読み込みの記述がありますが、これは、はてなの(GPLライセンスにもとづいている)スタイルシートを使うことができるようにしてあるためです。ですから、それらのスタイルシートをダウンロードしてない場合には、その部分をコメントアウトしておいて下さい。

 このことを逆に言えば、(こんな風に)CSSとJavaScriptを使って自分の好きなようにカスタマイズできるMathematicaフロントエンドを作ることができる、ということになります。JavaScriptとCSS、そして、Mathematica(とRuby)を使い、自分好みのデザインや(外部サービスと連携させるような)各種機能を備えた数式処理環境を作成してみるのも、面白いかもしれません。

IronRubyでMathematicaフロントエンドを書く(修正版)