2011年4月4日月曜日

[Ruby][Heroku] データベースを使用する

■概要
Herokuのデータベースについてまとめてみました。

Herokuでは5MBの容量を無料で使用できます。
さらに容量が必要となる場合は、有料で拡張していくことになります。

Heroku標準データベースはPostgreSQLです。
ただし、アドオンやAmazonRDSの連携を使用することで、Key Value StoreやMySQLを採用することも可能です。
AmazonRDSを使用する

共有データベース(PostgreSQL 8.3


共有データベースでは月額15ドルで20GBまでの容量を使用できます。


専用データベース(PostgreSQL 9












専用データベースはリソースによって上記6種類のプランが用意されています。
容量はいずれのプランも2TBが上限となっています。(2011/04時点)
※1ECompUnitは、1.0-1.2GHz 2007 Opteronまたは2007 XeonプロセッサのCPU能力と同等の能力とのこと


Railsを使用している場合のテーブル作成例とデプロイ方法は以下の通りです。

・マイグレーションを作成し適用する
$ ruby script/generate scaffold table_name
$ rake db:migrate

・Herokuへデプロイする
$ heroku rake db:migrate


以上です。

2011年3月29日火曜日

[Ruby][Heroku] プロジェクトを作成する

Heroku(ハーオーク)でプロジェクトを立ち上げてみた。

アイデアをサクッと形にできる。

このフットワークの軽さはステキですね。

1. 何はともあれ、サインアップ。https://heroku.com/からユーザ登録します。
無料です。









2. ここからローカルPCのセットアップ
もちろんRailsが入っていることは大前提でございます。

$ cd PATH/TO/MY_APP
$ git init
Initialized empty Git repository in .git/
touch README
$ git add .
$ git commit -m "my_app"
$touch README
[master (root-commit) 694cbe2] my_app
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 README

3. git用にSSH公開鍵を設定する(未設定の場合)
MacOS
Windows
Linux

$ heroku keys:add
Uploading ssh public key ~/.ssh/id_rsa.pub
Enter your Heroku credentials.
Email: ****@yourmail.com
Password:

Found existing public key: ~/.ssh/id_rsa.pub
Would you like to associate it with your Heroku account? [Yn] Y
Uploading ssh public key ~/.ssh/id_rsa.pub


4. Herokuにアプリをコミットする準備
$ sudo gem install heroku
$ heroku create
$ Git remote heroku added


5. Herokuのアプリをコミットする(gitのpushコマンド)
$ git push heroku master
Counting objects: 3, done.
Writing objects: 100% (3/3), 214 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)

-----> Heroku receiving push
! Heroku push rejected, no Rails or Rack app detected.

error: hooks/pre-receive exited with error code 1
To git@heroku.com:glowing-rain-535.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:glowing-xxx-xxx.git'

ん?何かエラーが出てる。
ssh鍵認証でエラーということで、調べてみたら以下のURLで同じ事象が紹介されていました。
[Linux]ssh 接続しようとすると「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」が表示されるときは

以下のコマンドを入力してアプリ名が表示されればOKです。
$ heroku list
glowing-xxx-xxx


参考URL
heroku quickstart refference
Ruby版PaaSの"Heroku"で無料Railsホスティング環境を手に入れよう


以上です。

2011年3月26日土曜日

[Javascript-Smartphone] Githubにリポジトリを作成する

これからJavascript+HTML+CSSでスマートフォンアプリを作成していきます。

あくまで勉強ですが、作成したすべてのコードはGithubで管理することにします。
準備作業として、Githubにリポジトリを用意します。

# ローカルにディレクトリを作成
mkdir javascript-smartphone-app
cd javascript-smartphone-app
# 初期化
git init
# READMEを追加
touch README
git add README
# コミット
git commit -m 'first commit'
git remote add origin git@github.com:Radengineer/javascript-smartphone-app.git
git push -u origin master


以上です。

2011年2月22日火曜日

[Emacs拡張] migemo-install

Migemoはローマ字のまま日本語をインクリメンタルサーチできる強力なツールです。

インストールに必要なもの
Emacs 私の環境はEmacs 22.3.1 (i386-apple-darwin9.8.0, Carbon Version 1.6.0) です。

APEL 不要かもしれません。

Ruby Migemo は Ruby で書かれています。 (1.6 以降対応)

Ruby/Bsearch バイナリサーチをするための Ruby のライブラリです。
パッケージを展開し、ライブラリファイルをrubyのディレクトリに配置します。
cp -p bsearch.rb /usr/lib/ruby/site_ruby/

Ruby/RomKan ローマ字<->かなを相互変換する Ruby のライブラリです。
パッケージを展開し、ライブラリファイルをrubyのディレクトリに配置します。
cp -p romkan.rb /usr/lib/ruby/site_ruby/

Migemo Migemo 本体です。現在のバージョンは 0.40 です。 migemo コマンドおよび Emacs から操作するための elisp が含まれます。
./configure
make
make install

インストール後に.emacsに以下の設定を追記します。
(require 'migemo)


以上です。


参考URL:
http://0xcc.net/migemo/
http://www4.kcn.ne.jp/~boochang/emacs/migemo.html

2011年2月9日水曜日

[cmd] wgetコマンドでhttpsリクエスト

wgetでhttpsリクエストを送るコマンドは以下の通り(良く使うオプションです)
wget -O file_name --header="header_name:header_value" "https://mail.google.com"

-O file_name 取得結果をファイルに保存します。
--header="header_name:header_value" httpヘッダを指定できます。複数使用可。
※wgetがSSL対応でコンパイルされている必要があります。

■HTTP関連のオプション
http://www.geocities.jp/fut_nis/html/wget-ja/HTTP-Options.html#HTTP-Options
■SSL関連のオプション
http://www.geocities.jp/fut_nis/html/wget-ja/HTTPS-_0028SSL_002fTLS_0029-Options.html


以上です。

2011年1月24日月曜日

[Emacs拡張] auto-install

Emacsを使用してますが、どのように拡張してきたか忘れがちなので記録を残していきたいと思います。

まずauto-install.elを利用できるようにします。
EmacsはLispプログラムをインストールして拡張するので、なるべく楽にインストールできるようにします。

1. EmacsWikiからauto-install.elをダウンロード
mkdir -p ~/.emacs.d/auto-install
cd ~/.emacs.d/auto-install
wget http://www.emacswiki.org/emacs/download/auto-install.el
(MacOSXでは標準ではwgetが使用できないのでcurlを利用します。curl -O http://www.emacswiki.org/emacs/download/auto-install.el)
emacs --batch -Q -f batch-byte-compile auto-install.el
auto-install.elcというコンパイル済みファイルが作成される

2.MacOSXでは以下のパスにコンパイル済みファイルを配置する
/Applications/Emacs.app/Contents/Resources/site-lisp

3. .emacsに以下の設定を追加する
;; auto-install
(require 'auto-install)
;;
(add-to-list 'load-path auto-install-directory)
;; 起動時にEmacsWikiのページ名を補完候補に加える
(auto-install-update-emacswiki-package-name t)
(auto-install-compatibility-setup)
(setq ediff-window-setup-function 'ediff-setup-windows-plain)

4. M-x install-elisp-from-emacswikiが実行できればインストール成功です。


以上です。

2011年1月15日土曜日

[Linux][CentOS] yumの再インストール

yumの調子が悪くなったので、再インストールしました。
※具体的にはyum updateができなくなり、yum clean allも効果なしという状況でした。

まずは、環境情報を確認。

ホストネームを確認する
# uname -a
Linux localhost.localdomain 2.6.18-194.el5PAE #1 SMP Fri Apr 2 15:37:44 EDT 2010 i686 i686 i386 GNU/Linux

OSバージョンを確認する
# cat /etc/redhat-release
CentOS release 5.5 (Final)

rpmバージョンを確認する
# rpm -q rpm
rpm-4.4.2.3-18.el5

yum関連パッケージをアンインストール
# rpm -e --nodeps python-elementtree
# rpm -e --nodeps python-urlgrabber
# rpm -e --nodeps python-sqlite
# rpm -e --nodeps m2crypto
# rpm -e --nodeps rpm-python
# rpm -e --nodeps python-iniparse
# rpm -e --nodeps yum-metadata-parser
# rpm -e --nodeps yum yum-fastestmirror

再インストール用パッケージをダウンロード
# cd /usr/local/src
# mkdir yumrpm
# cd yumrpm
# wget http://ftp.riken.jp/Linux/centos/5.5/os/i386/CentOS/python-elementtree-1.2.6-5.i386.rpm
# wget http://ftp.riken.jp/Linux/centos/5.5/os/i386/CentOS/python-urlgrabber-3.1.0-5.el5.noarch.rpm
# wget http://ftp.riken.jp/Linux/centos/5.5/os/i386/CentOS/python-sqlite-1.1.7-1.2.1.i386.rpm
# wget http://ftp.riken.jp/Linux/centos/5.5/os/i386/CentOS/m2crypto-0.16-6.el5.6.i386.rpm
# wget http://ftp.riken.jp/Linux/centos/5.5/os/i386/CentOS/rpm-python-4.4.2.3-18.el5.i386.rpm
# wget http://ftp.riken.jp/Linux/centos/5.5/os/i386/CentOS/python-iniparse-0.2.3-4.el5.noarch.rpm
# wget http://ftp.riken.jp/Linux/centos/5.5/os/i386/CentOS/yum-metadata-parser-1.1.2-3.el5.centos.i386.rpm
# wget http://ftp.riken.jp/Linux/centos/5.5/os/i386/CentOS/yum-3.2.22-26.el5.centos.noarch.rpm
# wget http://ftp.riken.jp/Linux/centos/5.5/os/i386/CentOS/yum-fastestmirror-1.1.16-14.el5.centos.1.noarch.rpm

yum関連パッケージを再インストール
# rpm -ivh python-elementtree-1.2.6-5.i386.rpm python-urlgrabber-3.1.0-5.el5.noarch.rpm python-sqlite-1.1.7-1.2.1.i386.rpm m2crypto-0.16-6.el5.6.i386.rpm rpm-python-4.4.2.3-18.el5.i386.rpm python-iniparse-0.2.3-4.el5.noarch.rpm yum-metadata-parser-1.1.2-3.el5.centos.i386.rpm yum-3.2.22-26.el5.centos.noarch.rpm yum-fastestmirror-1.1.16-14.el5.centos.1.noarch.rpm
準備中...        ########################################### [100%]
1:yum-metadata-parser  ########################################### [ 11%]
2:rpm-python       ########################################### [ 22%]
3:m2crypto        ########################################### [ 33%]
4:python-sqlite     ########################################### [ 44%]
5:python-elementtree   ########################################### [ 56%]
6:python-urlgrabber   ########################################### [ 67%]
7:python-iniparse    ########################################### [ 78%]
8:yum-fastestmirror   ########################################### [ 89%]
9:yum          ########################################### [100%]

次のコマンドでエラーが出なければ完了
# yum list


以上です。