Node + webSocket on dotCloud

dotCloud上でNodejsを使ってみたときのメモ。

まずはアプリケーションの作成(nodechatがアプリ名)

$ dotcloud create nodechat

ビルドファイル(dotcloud.yml)の作成

#dotcloud.yml
www:
  type: nodejs
  approot: chat

packge.jsonはこんな感じ

#packge.json
{
  "name": "nodechat",
  "version": "0.0.0",
  "dependencies": {
    "express": "*",
	"ejs": "*",
    "socket.io": "*"
  },
  "devDependencies": {}
}

続いて、supervisord.confをこんな感じに設定する

#supervisord.conf
[program:node]
command = node server.js
directory = /home/dotcloud/current

最後に、グローバルにインストルしたnpmのモジュールを紐つけます。

$ npm link express ejs socket.io

続きを読む Node + webSocket on dotCloud

php on dotcloud

dotcloudを試してみました。
dotcludはPHPやPerl、Ruby、Java、Python、Node.jsなど複数の言語と、MySQL、PostgreSQL、MongoDB、CouchDB、Redisなど複数のデータベースを開発者が
自由に組み合わせてプラットフォームを構成できて、クラウド上のPaaSとして利用できるみたい。
料金はどのプログラミング言語とデータベースを選択しても同一で、2サービスまでは無料で利用可能とのこと。

これは試すしかないと思ってとりあえず、チュートリアルに従ってやったときの手順をまとめておきます。

まずはdotcloudへの登録
dotcloudへアクセスしてのFreeの「Sing up now」を選択。
いろいろ登録

次にクライアントCLIをインストール
書いてあるけど念のためここにも書いておく
【Linux】

$ sudo easy_install pip && sudo pip install dotcloud
$ dotcloud
Enter your api key (You can find it at http://www.dotcloud.com/account/settings):APIキーを入力

【Mac】

$ sudo easy_install pip && sudo pip install dotcloud
$ dotcloud
Enter your api key (You can find it at http://www.dotcloud.com/account/settings):APIキーを入力

これでクライアントCLIツールのインストールが完了

次は実際にphpで書いてみよう。
続きを読む php on dotcloud

openFrameworks to Arduino

openframeworksからArduinoへシリアルケーブルを使用してデータをなげる方法
ちょっと修正すればArduinoからopenframewoksへの転送も可能かな。

【oF側】
 まずはデータを転送するArduinoの情報を設定

void testApp::setup(){
  serial.enumerateDevices();
  serial.setup("/dev/tty.usbserial-A800evPW",9600);
}

続きを読む openFrameworks to Arduino

Arduino Ethernet Shield + SDカード

Ethernet ShieldにくっついてるSDカードスロットが飾りのようになっていて寂しいので使ってみたよ。
書き込み用に開くファイルのファイル名には文字数制限があるみたい。ちょっとはまってしまっけど。。
8文字以内にしないとファイルオープンに失敗するから注意が必要。

【環境】
ArduinoIDE 0022 + Ethernet Library
続きを読む Arduino Ethernet Shield + SDカード

Arduino Ethernet Shield

書こう書こうと思ってほったらかしになってたので、
Arduino + Ethernet Shieldを情報をまとめておきます。

【環境】
ArduinoIDE 0022

とりあえずはTwitterから自分の投稿をゲットしてくる方法
XML解析は自分でお願いします。そんなに難しくないし、ライブラリもあるので。

#define SSR_PIN  9
#define MSG_LEN 140
byte mac[] = {  0x90, 0xA2, 0xDA, 0x00, 0x12, 0xDE };      // Ethernet ShieldのMACアドレス
byte server[] = { 199, 59, 148, 10 }; // www.twitter.com   // TwitterのグローバルIP
Client client(server, 80);

void setup()
{
  // 初期化
  pinMode(SSR_PIN, OUTPUT);
  digitalWrite(SSR_PIN, LOW);

  // start the Ethernet connection:
  EthernetDHCP.begin(mac);
  // start the serial library:
  Serial.begin(9600);
  // give the Ethernet shield a second to initialize:
  delay(1000);
}

void loop()
{
  if( !client.connected() )
  {
    Serial.println("connecting...");

    // if you get a connection, report back via serial:
    if (client.connect()) {
      Serial.println("connected");
      // Make a HTTP request:
      client.println("GET /statuses/user_timeline/Twitterのアカウント名.xml HTTP/1.0");
      client.println();
    } 
    else {
      Serial.println("connection failed");
    }
  }

  delay(1000);

  // 取得した文字列を出力
  while( client.available() ){
    char c = client.read();
    Serial.print(c);      
  }

  Serial.println("disconnecting.");
  client.stop();

  // 60秒後に再接続
  Serial.println("waiting 60s.");
  delay(60000);
}

iProcessingでiPhoneアプリ作成

面白そうなのがあったので試してみまた。iProcessing。
いままでこつこつやっていたProcessingの資産をiPhoneアプリに出来るか試してみました〜。

環境
macOSX 10.5 leopard
Xcode 3.1

① iProcessingをダウンロード
 以下のページからiProcessingをここからダウンロード
 iOS3とiOS4があるけど今回はiOS3を使用。

② サンプルを動かしてみる
 ダウンロードしたフォルダ「0004」配下の「examples」の中に様々なサンプルを起動すると、
 iPhoneシミュレータが起動して、アプリの実行結果をシミュレートできる。

③ いままでの資産を動かしてみる。
 サンプルを丸ごとコピーする。
 [プロジェクトのアイコン] →「Resorces」→「main」→「main.pde」
 「main.pde」ファイルを選択して、Processingのコードを丸っとコピー。
 あとは、ビルドすればシュミレーター上で動きます。
 
 このプロジェクトの作り方ってoFの007と同じだけど、なんだか慣れないなぁ。

ちなみにOSX 10.6 SnowLeopardだとアクティブSDKを「iPhoneシミュレータ3.2」にしてiPadでの起動の様子できるみたい。
詳細はここを参照してください。

Node.jsのアンインストール

Nodejsのインストールについて書かれている記事はたくさんあるけど、Nodejsやパッケージのアンインストールあまり記事か無いので書いておきます。

■ Nodejsのアンインストール

$ cd node-v0.1.103
$ sudo make uninstall

■ npmのアンインストール

$ sudo npm uninstall npm -g

■ パッケージ(グローバルオプション付き)のアンインストール

$ npm uninstall -g “パッケージ名”

グローバルオプション(-g)を指定ないでインストールをしたパッケージは

$ npm uninstall “パッケージ名”

これでインストールしたものは削除完了なはずです。
 

おすすめ書籍

Ubuntu11.10でLAMP 環境の設定

Ubuntu11.10でLAMP 環境の設定しようと思っていたら簡単な方法がありました。

僕は既にMySQLを入れちゃっていたのでApache と PHPの動作確認をして、以下のコマンドで
パッケージをインストールするだけでOKでした。

$ sudo apt-get install php5-mysql

簡単すぎるね。

Ubuntu11.10にMySQLとPostgreSQLを入れてみる。

まずはMySQLを入れてみる。

① apt-get を使ってインストール

 $ sudo apt-get install mysql-server

 途中で以下のように聞かれるのでyesを入力

 $ Doyouwanttocontinue[Y/n] y?

 さらに進むと管理ユーザ(root)のパスワードを設定しろと言われるので設定する。
 これでインストールをは完了
 
② 動かしてみる

 $ mysql -u root -p
 Enter password:

 パスワードを聞かれるのでインストール時に設定したパスワードを入力

 mysql> show databases;
 +——————–+
 | Database |
 +——————–+
 | information_schema |
 | mysql |
 +——————–+
 2 rows in set (0.00 sec)
 
 mysql> exit
 Bye

これでMySQLが動いているが確認できたので、続いてPostgreSQLの設定に。

つづいてPostgreSQLを入れてみる。

① apt-get を使ってインストール

 $ sudo apt-get install postgresql-8.2

 途中で以下のように聞かれるのでyesを入力
 この操作後に追加で 15.9 MB のディスク容量が消費されます。
 続行しますか [Y/n]? y
 ちょっと待つとインストール完了です。

② 設定
 PostgreSQLをインストールするとLinux上に postgres ユーザが自動的に作成ので
 このユーザのパスワードの設定を行う。

 $ sudo passwd postgres
   新しいUNIXパスワードを入力してください:
   新しいUNIX パスワードを再入力してください:
   passwd: パスワードは正しく更新されました

 PostgreSQL上での管理ユーザも postgres ユーザーとなっているので、これにもパスワードを設定する。

 $ sudo su – postgres
 $ psql -c “alter user postgres with password ‘**********'” //**********:パスワード
 ALTER ROLE
 $ exit