「Tech」カテゴリーアーカイブ

ubuntu11.10 に Jenkinsをいれるための準備

まずは、javaのバージョンを確認

$ java -varsion
java version “1.6.0_23”
OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10.2)
OpenJDK Client VM (build 20.0-b11, mixed mode, sharing)

入ってなければ以下のコマンドでjavaをインストール。

sudo apt-get install openjdk-6-jdk openjdk-6-jre

次にgitのインストール

$ sudo apt-get install git-core

$ git –version
git version 1.7.5.4

次にGitHubアカウントのセットアップ
 http://github.comの[Pricing and Signup] をクリック
 Free (無料) アカウント用の [Sing Up!] ボタンをクリックします。
 [Username]、[Email Address]、[Password]、[Confirm Password] を入力します。
 [I agree, sign me up!] ボタンをクリックして、アカウントを作成します。

■レポジトリを作成
 鍵の準備
GitHubに登録する公開鍵の作成

$ cd .ssh
$ ssh-keygen -t rsa -C “your github mail address”
$ Generating public/private rsa key pair.
$ Enter file in which to save the key (/Users//.ssh/id_rsa): /Users//.ssh/github_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

 鍵をGitHubへ登録
  GitHubにアクセスしてログインする。
  画面右上の「Account Settings」をクリック。
  SSH Public Keysを選択。
  タイトルに鍵を識別する任意の名前をつける。
  作った公開鍵(id_rsa.pubとか)の中身を、まるっとコピー&ペーストする。
  Add keyボタンクリックで登録完了。

  以下でGitHubにアクセスできたらOK。

$ ssh -T git@github.com
Hi アカウント名! You’ve successfully authenticated, but GitHub does not provide shell access.

ここまできてやってとレポジトリの作成
 GitHubのページから[Dashboard]をクリックし、画面中段右の[New Repository]ボタンをクリック。
 リポジトリ登録画面が表示されるのでプロジェクト名(HelloWorld)を入力する。
 オプシンでプロジェクトの説明とホームページも入力出来る。
 [Create Repojitory]ボタンで作成完了。
 後は画面に従って操作する。

続いてレポジトリのフォーク
 GutHubのアカウントにログイン
 レポジトリのURLにアクセス
 Forkボタンをクリック

確認のためにローカルコピーをフォーク(レポジトリの個人用コピー)する。

$ git clone git@github.com:アカウント名/HelloWorld.git
Cloning into HelloWorld…
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 3 (delta 0)
Receiving objects: 100% (3/3), done.
$ ls
HelloWorld

HelloWorldがClone(SVNでのチェックアウト)されている。

とりあえず今日はここまで。

お勉強

クラウドコンピューティングに触れる機会が多くなってきたから
この辺でしっかりお勉強をしておこうかと。

まずは定義からしっかりと。数学の基本すな。
【構成定義】
 IaaS(Infrastructure as a Service)
  サーバ/CPU/ストレージなどのインフラをサービスとして提供する。
 PaaS(Platform as a Service)
  アプリケーションを稼働させるためのプラットフォームをサービスとして提供する。
 SaaS(Software as a Service)
  アプリケーション(ソフトウェア)をサービスとして提供する。

IaaS

ネットワーク/ハードウエア(CPU・メモリー・ハードディスク)/OSを提供するサービス。ユーザーは何もインストールされていないサーバー環境を提供され、その上にユーザーが必要とするミドルウエアや、アプリケーションソフトウエアをインストールする。
■レンタルサーバとの違い
サーバーのCPU・メモリー・ハードディスクを仮想化技術などによって、ユーザーが必要とする分だけ提供する。
■具体例
Amazon EC2(EC2はOSも提供しているので厳密な意味でのIaaSではないけど)
 

PasS

IaaSの構成要素に加え、データベースソフトやWebサーバーソフトといったWebアプリケーションを稼働させるためのソフトウエアや、アプリケーション開発に必要となるソフトウエアを提供。
ユーザーは、必要なアプリケーションのソースコードをPaaS環境にアップロードし、必要なデータベース定義を設定することで、アプリケーションを動作させることが可能。
■IaaSとの違い
OSの各種設定や保守作業をユーザー自身が行う必要がないため、ユーザが直接操作することはない。
■注意点
アプリケーションで利用できる開発言語が限定される点や、PaaSにおいて提供されていないミドルウエアについてはユーザー自身が準備しなければならない。
■具体例
dotcloud
 

SaaS

ユーザーはネットワーク・ハードウエア・OS・ミドルウエアのすべての要素について、自身で準備をする必要なし。ユーザーはWebブラウザを利用して、 SaaS提供事業者のWebアプリケーションにアクセスし、サービスを利用する。

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 “パッケージ名”

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

おすすめ書籍