TECH
[CloudGarage]

各種プログラミング言語のプレイグラウンド、Nodebookを試す

TECH
中津川 篤司

プログラミング言語をこれから覚えていきたいという人は多いでしょう。一つのプログラミング言語を習得したプログラマであっても、新しい言語を覚えたり、複数の言語を組み合わせたりする機会は少なくありません。しかし、各プログラミング言語の環境設定は面倒なものです。

そこで使ってみたいのがNodebookです。執筆現在(2018年11月)で18種類ものプログラミング言語に対応したプログラミング実行環境となっています。

今回はそんなNodebookのセットアップ法、試し方を紹介します。ローカルでも動かせますが、今回はCloudGarage上で実行します。

環境について

今回はUbuntu16.04を使っています。

Node.jsをセットアップする

まずNode.jsをインストールします。aptでインストールされるものは古いので、Ubuntuに最新のNode.jsを難なくインストールする – Qiitaを参考に最新版をインストールします。

$ sudo apt-get install -y nodejs npm
$ sudo npm install n -g
$ sudo n stable
$ sudo apt-get purge -y nodejs npm

これで最新版のnode.jsがインストールされます。

$ node --version
v11.0.0

Nodebookをインストールする

Nodebookのインストールはnpmコマンドでできます。

$ sudo npm install nodebook -g

Dockerをインストールする

実行環境として、各言語をセットアップする方法もありますがとても大変です。そこでDockerを使って安全に実行できるようにします。こちらはUbuntuにdockerをインストールする – Qiitaを参考にインストールします。

$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

nginxをインストールする

Nodebookは通常、ローカルでしか動かせないようになっています。そこでnginxをリバースプロキシとして利用します。

$ sudo apt-get install nginx -y

設定ファイルを編集する

インストールされたら /etc/nginx/sites-enabled/default を編集します。変更点は以下になります。

proxy_set_header    Host    $host;
proxy_set_header    X-Real-IP    $remote_addr;
proxy_set_header    X-Forwarded-Host       $host;
proxy_set_header    X-Forwarded-Server    $host;
proxy_set_header    X-Forwarded-For    $proxy_add_x_forwarded_for;

location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        # try_files $uri $uri/ =404;
        proxy_pass    http://127.0.0.1:8000/;
}

これで完了です。nginxを再起動します。

$ sudo service nginx restart

Nodebookを起動する

ではNodebookを起動します。

$ mkdir nodebooks
$ sudo nbk --docker ./nodebooks/

これで http://127.0.0.1:8000/ で立ち上がります。

使ってみる

http://(IPアドレス) にアクセスします。以下のような表示になればOKです。+Notebookをクリックするとプログラミング言語を選ぶメニューが出ます。

例えばRubyを選びました。

最初の実行時はDockerでRubyイメージをダウンロードするので若干時間がかかったり、すぐに実行されない可能性があります。実行されると右側に実行結果が表示されます。

Rubyだけでなく、Node.jsやPHP、Rust、Goなど様々な言語を試せます。

まとめ

Dockerで実行されているのでプログラミング言語のセットアップは不要ですし、権限上も安全に実行できます。誰でも自由に実行できるのは若干怖いですが、コードのスニペットを試したり、プログラミング言語の学習として使ってみるのは面白そうです。

netgusto/nodebook: Nodebook – Multi-Lang Web REPL + CLI Code runner

この記事を書いた人

中津川 篤司

株式会社MOONGIFT 代表取締役。CloudGarage、ニフクラ mobile backend、hifive エバンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。2004年、まだ情報が少なかったオープンソースソフトの技術ブログ『MOONGIFT』を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶエバンジェリスト業「DevRel」活動をスタートした。 Twitter:@goofmint | GitHub:@goofmint | Facebook: goofmint

この記事のタグ

オススメの記事

 

この記事を読んだ人にオススメのサービス

CloudGarage

クラウドガレージは初期費用なし、月額1,380円から使える定額型のパブリッククラウドです。ローカルSSDによる「超高速」なクラウド環境を直感的なUIとシンプルな価格体系で「超簡単」に利用することができます。クラウド利用をもっとラクにしたい方に!

ページトップへ