Friday, July 19, 2013

Express - Web application framework for Node.js

以前、Raspberry Pi上にNode.jsをインストールする手順を紹介した。
Node.jsには、expressと呼ばれるWebアプリケーションフレームワークがあるらしいので、どんなものか一度使ってみたいと思い、その手順を書き残すことにした。

まず、今回のサンプル用Webアプリケーションを格納するディレクトリをつくってその中に移動しよう。
$ mkdir hello-world
$ cd hello-world

つづいて、今回つくるアプリケーション用にnpmの設定ファイル“package.json”を用意する。
$ nano package.json
内容は以下の通りとする。
{
  "name": "hello-world",
  "description": "hello world test app",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "express": "3.x"
  }
}
つぎに、以下のコマンドを実行して、必要なパッケージをインストールしよう。
$ npm install

これでexpress関連のモジュールが使えるようになったので、サンプルアプリケーションを書いてみよう。
$ nano app.js
内容はとりあえず、以下の通りで。
var express = require('express');
var app = express();

app.get('/hello.txt', function(req, res){
  res.send('Hello World');
});

app.listen(3000);
console.log('Listening on port 3000');
さて、実行してみよう。
$ node app.js
Listening on port 3000
ブラウザから、以下にアクセスしてみよう。
http://<Raspberry Piのホスト名またはIPアドレス>:3000/hello.txt

Thursday, July 18, 2013

Installing Node.js on Raspberry Pi

以前、apt-getコマンドを使用してRaspberry PiにNode.jsを入れる手順を書いた。しかしながら、2013年7月の時点で、この手順でインストールされるバージョンが古いため、最新バージョンを入れる手順を改めて書くことにする。
すでに古いNode.jsを入れてしまった方は申し訳ないが、アンインストールした上で、以下の手順を実行してほしい。

まず、インストール先ディレクトリを作成しておこう。
$ sudo mkdir -p /opt/node

Node.jsのサイトからRaspberry Pi用にビルドされたモジュールをダウンロードして、先ほど作成したインストール先ディレクトリにコピーする。ここで示したv0.11.4はあくまでも執筆時点の最新であるため、適宜、読み替えていただきたい。
$ wget http://nodejs.org/dist/v0.11.4/node-v0.11.4-linux-arm-pi.tar.gz 
$ tar zxvf node-v0.11.4-linux-arm-pi
$ sudo cp -r node-v0.11.4-linux-arm-pi/* /opt/node

このままではコマンドにパスが通っていないので、/etc/profileを編集してパスを通しておこう。
$ sudo nano /etc/profile
“export PATH”と書かれた行の手前に、以下の内容を追加しよう。
# Node.js
NODE_JS_HOME="/opt/node"
PATH="$PATH:$NODE_JS_HOME/bin"

パスが反映されたのは次回ログイン時なので、いったんログアウトすればよい。
ログインして、コマンドが実行できれば成功。バージョンも最新だ。
$ node -v
v0.11.4

今回、紹介した手順は、http://blog.rueedlinger.ch/2013/03/raspberry-pi-and-nodejs-basic-setup/を参考にさせていただいた。

Sunday, July 7, 2013

Remote Desktop Connection to Raspberry Pi

今日は、Windowsの『リモート デスクトップ接続』を使用して、Raspberry Pi (Raspbian OS)をGUI操作できるようにする方法について書くことにしよう。
Raspberry Piが家庭用テレビに接続されていて、家族がテレビ番組を見ているときにどうしてもGUI操作したい場合や、そもそもRaspberry Piがディスプレイにつながっていない場合に便利だろう。
Raspberry Pi側をリモートデスクトップ接続に対応させるには、xrdpというアプリケーションをインストールすればよい。
sudo apt-get install xrdp
インストールが終わったら、Raspberry Piに接続してみよう。[コンピューター]欄にホスト名またはIPアドレスを入れる。接続時に訊かれるユーザ名には、ふだん使う“pi”ユーザと、そのパスワードを指定すればよいだろう。



以下のようにRaspberry Piのデスクトップ画面が表示されれば成功だ。
たいていの作業はssh接続で済んでしまうってあまり画面を使うことはないけれど、たとえば、Scratchでプログラムを描きたい場合などに重宝するかもしれない。


リモート デスクトップ接続のオプションで画面サイズを調整したり、接続情報を保存しておいたりすると、次回からの起動に便利だろう。

注意事項がひとつ。
このままではキーのマッピングが英語キーボードとなっているので、記号などがうまく入力できないので、サーバ側で設定を行う必要がある。
先人の知恵を拝借して、以下に示すページの手順に従って、設定ファイルを/etc/xrdpディレクトリに格納することで、この問題は解決する。素晴らしい、ありがとう。

■xrdp 0.5.0 の日本語キーマップ

ひと昔前は、Linuxサーバなどにリモート接続する際はVNCというソフトを使うのが一般的で、Windows側にもVNCクライアントをインストールする必要があったりして面倒くさい感じがあったけれど、標準の『リモート デスクトップ接続』を使えるので手間がかからなくて便利である。