プログラミング言語

各種プログラミング言語のプレイグラウンド、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

ページトップへ