2011年8月29日月曜日

Mac Ruby の irb 上で日本語が入力出来ない

標準の port でインストールした ruby を含めて
何も設定せずに rvm で mac ruby をインストールしてあると、irb 上で日本語の入力が出来ません。これを解消します。

問題は、readline のようです。
以下のコマンドにより readline を利用するオプションを付けて ruby を再インストールします。

OS が Lion であると、問題は無いようです。
see: http://builder.japan.zdnet.com/os-admin/lion-for-developers11/35005492/3/

$ sudo port selfupdate
$ sudo port install readline
$ rvm package install readline
$ rvm install 1.8.7 --with-readline-dir=$rvm_path/usr
$ rvm install 1.9.2 --with-readline-dir=$rvm_path/usr

$ irb -Ku
ruby-1.8.7 :001 > p "aa"
"aa"
 => nil 
ruby-1.8.7 :002 > p "ああ"
"ああ"
 => nil 

2011年8月27日土曜日

Xperia mini pro (SK17i) を買ってみた(その1)

タイトル通り、Xperia mini pro を買ってみました。



昨年発売された Xperia X10 mini pro の後継にあたる機種で、スライド式のQWERTYキーボードを有しているのが最大の特徴でしょうか。

主なスペックは以下の通りです。
  • Qualcomm MSM8255(1GHz)
  • 512MB メモリ、320MB ROM、2GB microSDHC 付属
  • 3インチのHVGA (480×320px)
  • 500万画素(CMOS)のメインカメラ、30万画素(CMOS)のインカメラ
  • 重さ136g (iPhone 4 と同じくらい)
  • Android 2.3
iPhone 4 の2年縛りが1年以上残っているのと、android 機を所持していなかったので、お試しを考えハイスペック機に手を出さないようにしようというのもありました。

そうすると、IDEOS あたりも候補だったのですが、ソニー好き+キーボードが欲しいという事情でこの機種にしました。 この機種は、国内でも秋葉原の店で扱っていますが、人気のようで完売の場合が多く、1shopmobile.com というネット販売会社から輸入してみることにしました。 この店は微妙に悪い話も聞きすが、職場の後輩が買って問題無かったことや、2ch.net でも問題なく購入できていることから購入に踏み切りました。

本体 USD 269.0 + 送料 USD 25.0 の合計 USD 294.0
(クレジットカードの決済は ¥22,977 、レートは、78.15 でした)

さらに通関料が ¥200、消費税・地方消費税が ¥500 でした。


2011年8月18日 16:08 に注文をして、
その後は、EMS (国際スピード郵便)のトレース情報を。
8/20 と 8/21 が土日で、ちょうど税関のお休みと重なってしまったため、少し遅れてしまった感じです。
状態
発生日
状態 詳細 取扱店名 県名等
郵便番号
8月19日
18:15
引受 APT HONG KONG
8月19日
22:14
国際交換支店から発送 KOWLOON D HONG KONG
8月20日
14:05
国際交換支店に到着 東京国際支店 東京都
138-8799
8月20日
15:15
通関手続中 東京国際支店 東京都
138-8799
8月20日
20:39
通関手続中 東京国際支店 東京都
138-8799
8月23日
14:55
国際交換支店から発送 東京国際支店 東京都
138-8799
8月23日
22:24
通過 さいたま新都心支店 埼玉県
330-9799
8月24日
7:54
到着 鳩ヶ谷支店 埼玉県
334-8799
8月24日 ご不在のため持ち戻り 鳩ヶ谷支店 埼玉県
334-8799
8月25日
21:05
お届け先にお届け済み 鳩ヶ谷支店 埼玉県
334-8799



2011年8月20日土曜日

MySQL のログをローテートする

MySQLのログをローテートします。
CentOS 5.5 を利用しています。

参考:http://dev.mysql.com/doc/refman/5.1/ja/log-file-maintenance.html

Linux環境でオフィシャルの rpm でインストールしていれば、mysql-log-rotate というスクリプトファイルが
インストールされているので、これを利用してみます。
mysqladmin コマンドから flush-logs アクションを実行するのにrootユーザーのパスワードの指定が
必要です。

$ locate mysql-log-rotate
/usr/share/mysql/mysql-log-rotate

logrotated から利用するので /etc/logrotate.d にコピーします。
# cp /usr/share/mysql/mysql-log-rotate /etc/logrotate.d/mysql

ログファイルのパスを設定します。
# vi /etc/logrotate.d/mysql


/var/lib/mysql/mysqld.log {
# create 600 mysql mysql

/var/lib/mysql/mysql.log {
# create 600 mysql mysql

などに変更する。

/root/.my.cnf に mysql-log-rotate アクションを実行するために実行ユーザーとパスワードを設定します。
sudo vi /root/.my.cnf
[mysqladmin]
password = "password"
user= root

パーミッションを変更します。
chmod 600 /root/.my.cnf

2011年8月18日木曜日

nginx のログローテート

nginx に シグナル USR1 を送信するとログファイルを開き直すので、これを利用します。

see: http://wiki.nginx.org/NginxLogRotation

実際には、USR1 を送信するシェルを書いて cron で定期実行させるか、logrotated を利用するかの方法があるかと思います。

今回は、logrotated を利用します。

vi /etc/logrotate.d/nginx


/opt/nginx/logs/access.log {
    daily
    dateext
    rotate 365
    missingok
    ifempty
    sharedscripts
    postrotate
        test ! -f /opt/nginx/logs/nginx.pid || kill -USR1 `cat /opt/nginx/logs/nginx.pid`
        /bin/mv /opt/nginx/logs/access.log-`date '+%Y%m%d'` /opt/nginx/logs/access.log.`date '+%Y%m%d' -d '1days ago'`
    endscript
}


2011年8月15日月曜日

Mac OS X に MySQL 5.5 をインストールする

MacOS X に MySQL 5.5 をインストールします。
記事にしなくても良いくらいに簡単。

まずはインストール用ファイルをダウンロードします。
http://dev.mysql.com/downloads/mysql/

32bitもしくは64bit、アーカイブの種類で分かれていますが、
私は、Mac OS X ver. 10.6 (x86, 32-bit), DMG Archive を選びました。

DMGファイル(mysql-5.5.15-osx10.6-x86.dmg)をクリックしてマウントします。
4つのファイルがあります。
mysql-5.5.15-osx10.6-x86.pkg
MySQL.prefPane
MySQLstartupItem.pkg
ReadMe.txt


順番に実行します。
1. 本体のインストール

mysql-5.5.15-osx10.6-x86.pkg
をダブルクリック

2. 自動起動スクリプトのインストール

MySQLstartupItem.pkg
をダブルクリック

3. システム環境設定用ファイルのインストール

MySQL.prefPane
をダブルクリック

ターミナルを起動して設定ファイルをコピーする。
sudo cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf

Twitter であるユーザーのフォロワーを追う

Twitter の followers は、フォローした場合はメールで通知されます。
反対にリムーブした場合は、通知されないので、任意のタイミングごとにチェックして
結果を出力する、Ruby スクリプトを作ってみました。

Ruby 1.9.2 p180 で動作確認しています。
SQLite3 を利用しています。
このプログラムによって何らかの問題があっても、私(tmpz84)は責任を持ちません。

twifol.rb をダウンロード

以下のGemを利用しているのでインストールします。
sqlite3 (1.3.3)
sqlite3-ruby (1.3.3)
twitter (1.6.0)

インストール方法
$ gem install twitter
$ gem install sqlite3-ruby

情報を保存するファイル(テーブル)を作成します。
以下のコマンドを実行する場所は、ruby スクリプトを設置すると同じディレクトリです。
$ sqlite3 data.db
SQLite version 3.6.14.2
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> CREATE TABLE follwers (
...> id INTEGER,
...> name TEXT,
...> created_on TEXT,
...> updated_on TEXT,
...> deleted_on TEXT
...> );
sqlite> .table
follwers

チェックする twitter アカウントを TARGET_ID を vi などで編集してください。
これで実行できます。
$ ruby twifol.rb

2011年8月13日土曜日

CentOS 5.5 から 5.6 へアップデート

CentOS 5.5 から 5.6 へアップデートする方法

リリースノートの通りで、比較的簡単です。
http://wiki.centos.org/Manuals/ReleaseNotes/CentOS5.6/Japanese#head-6ece74d57ce0efb64ab9b27d508b9f19be81bd7a

私が実行したコマンドのメモ

# cat /etc/redhat-release
CentOS release 5.5 (Final)

yum clean all
yum update glibc\*
yum update -y yum\* rpm\* pyth\*
yum clean all
yum update -y mkinitrd nash
yum update -y selinux\*
yum update -y
shutdown -r now

# cat /etc/redhat-release
CentOS release 5.6 (Final)

無事に 5.6 にアップデート出来ました。