Julia のコードを Web 上で実行できるサンドボックス環境を公開しました


この記事は、[Julia Advent Calendar 2014](http://qiita.com/advent-calendar/2014/julialang) の 22 日目の記事です。

## サンドボックス環境とは？

[これ](http://www21176ui.sakura.ne.jp:8080/)のことです。使い方については後述しますが、Julia のソースコードをウェブ上で実行し、実行結果を確認することができます。

実行結果は[このように](https://gist.github.com/julialang-jenkins/b9efcb538e6ffbbf8c71) Github Gist に投稿されます。実行結果には、プログラムの標準出力、ソースコード、実行環境が含まれます。そのため、ML へのバグ報告などの際に、この Gist の URL をコピーペーストすることができます。

Julia 言語は、活発に開発が行われている最中の言語です。そして Julia で開発していると、「あれ、このバグは自分のコードの書き方の問題なのかな？」「Julia の問題なのかな？」と問題の切り分けに困るときがあったりします。そんなとき、もうひとつ別に Julia を動かせる環境があれば、結果を比較して問題の切り分けが容易になるのではないでしょうか。

このサンドボックス環境は、Julia の version 0.3.3 と 0.4-dev をサポートしています。0.4-dev は毎日自動的にビルドし更新されるため、最新の開発版でコードをお試しいただけます。

## なにはともあれ、使ってみましょう！

まずは[ここ](http://www21176ui.sakura.ne.jp:8080/)にアクセスしてください。このシステムは Jenkins を使って構築されています。

![スクリーンショット 2014-12-20 9.49.49.png](https://qiita-image-store.s3.amazonaws.com/0/322/eaa3b011-3fea-47d5-3a37-50f8a3fa4b9b.png "スクリーンショット 2014-12-20 9.49.49.png")

下の方にスクロールすると、ジョブがふたつ並んでいます。

![スクリーンショット 2014-12-20 9.53.19.png](https://qiita-image-store.s3.amazonaws.com/0/322/ee9f3a11-cf0f-bc85-d21a-a210bd67866f.png "スクリーンショット 2014-12-20 9.53.19.png")

[0.3-stable](http://www21176ui.sakura.ne.jp:8080/job/0.3-stable/)をクリックして、ジョブの画面を開いてみましょう。

![スクリーンショット 2014-12-20 9.54.17.png](https://qiita-image-store.s3.amazonaws.com/0/322/1a328f89-516f-eb7c-7974-74ceac979c5f.png "スクリーンショット 2014-12-20 9.54.17.png")

左側のカラムに「ビルド履歴」が出ています。ここに直近で実行されたジョブのリストです。緑色になっているものが成功、赤色になっているのが失敗のジョブです。ちなみに、右上にある「Build Now」ボタンは動いていないので押さないでくださいすみません。

「パラメータつきビルド」を押してください。

![スクリーンショット 2014-12-20 9.56.37.png](https://qiita-image-store.s3.amazonaws.com/0/322/a205a134-f73e-970c-9277-611971362346.png "スクリーンショット 2014-12-20 9.56.37.png")

ここの「SOURCE_CODE」に、Julia のソースコードを入力できます。ヒントとして "Hello, Julia world !!" と入力されていますが、テスト用にハンドルネームなどに書き換えてください。

また、「DESCRIPTION」にコードの説明を入れてください。

「ビルド」を押してビルドします！　ビルドには、もちろん実行するコードの内容にもよりますが、Juliaの実行以外に1分くらい余分にかかります。ビルド履歴のカラムで、ステータスバーが伸びていることを確認し、自分のコードが実行されていることがわかります。

![スクリーンショット 2014-12-20 10.00.56.png](https://qiita-image-store.s3.amazonaws.com/0/322/3b66bc59-dcb7-b65e-a292-aff115ed0759.png "スクリーンショット 2014-12-20 10.00.56.png")

緑色の丸がジョブ履歴についたら、おめでとうございます！　実行が成功しました。


実行履歴を[Github Gist](https://gist.github.com/julialang-jenkins)から確認できます。Gist は julialang-jenkins というユーザ名で投稿されます。

 ![スクリーンショット 2014-12-20 10.03.20.png](https://qiita-image-store.s3.amazonaws.com/0/322/8fefeb9f-757a-b3af-3895-c4d7d7ed4b3d.png "スクリーンショット 2014-12-20 10.03.20.png")
 
新しい方の投稿に、自分の実行結果があることが確認できると思います。クリックして開いてみましょう。

![スクリーンショット 2014-12-20 10.04.36.png](https://qiita-image-store.s3.amazonaws.com/0/322/f97678bb-512f-377f-5d64-c62554dd9f4b.png "スクリーンショット 2014-12-20 10.04.36.png")

こんなかんじに、実行結果がわかります。実行したソースコード、実行結果、実行環境が表示されます。

こんなかんじです。0.4-dev も同様に実行することができます。

## 使い方のヒント

- 実行に時間がかかりすぎるようなコードを実行しないでください。数分以内に実行が完了するようなコードのみ実行してください。無限ループも禁止です。
- 実行に 100MB 以上のメモリが必要になるようなコードも実行しないでください。このシステムは、非力な計算機上で実行されています。
- 前のジョブが無限ループしていて自分のジョブが実行できないような場合、容赦なく前のジョブを落として問題ありません。10分以上かかっているようなら落としましょう。「ビルド履歴」のバツボタンを押してジョブを落とすことができます。
- 0.4-dev は毎日定期的にビルドされます。不安定な場合もあるでしょう。実行結果が不満足なものの場合、Gist に投稿された "system_info.txt" に、Julia のコミット ID が記されています。そのコミット ID を手がかりに Julia のバグを追うことができます。

## システムへのご意見ご要望等

このシステムへの意見がある場合は、Twitter で [@iizukak](https://twitter.com/iizukak) までご連絡ください。