2010年3月31日水曜日

pgpoolの--with-opensslに手を出してみる

pgpool、さくさく動いたのですがOpenSSL対応したので入れなおしてみたのですが
makeで失敗してしまう。

原因は以前のpostgresのメーリングリストに出ているのと同じで
OpenSSLをリンクする際にオプションが足りないand間違っている。

Makefileの以下の行を
LIBS = -lcrypt -lresolv -lnsl -lm
次のように修正
LIBS = -lresolv -lnsl -lm -lssl -lcrypto

makeが通りました!

2010年3月24日水曜日

Amazon EC2にTeraTermで接続する

takです。

Amazon EC2をテストしていますが、SSHのツールがどこの解説も
PuTTYです。まぁ、Firefoxから呼び出すツールがデフォルトだと
PuTTYなので仕方が無いのかなぁとは思うのですが普段は
TeraTermなんですよね。

じゃあ、TeraTermでつなげばいいじゃん、と。

PuTTY用の手順でpear-Keyを生成した後にキーを一行になるように
編集するようになっているファイル。これを直接TeraTermに読み込ませる。
これで完了ですよ。

あれ、PuTTYよりも簡単?

2010年3月6日土曜日

phpのワードラップ(wordwrap)処理。
UTF-8しか試してない。
標準の関数がマルチバイトに対応していないからこんなことに。
ネットのQAなんかで紹介されている関数だとUTF8は動作しなかったりして駄目だった・・・。
3バイトで全角文字を表現するからこんなことになるんだぁぁぁぁ。

wordwrap
function _wordwrap($line,$length=-1,$cr="\n",$enc="UTF-8"){
if($length<=1 && $length!=-1){
throw new Exception("wrapの指定が1以下");
}elseif($length==-1){
return $line;
}
$tmpBody = $line;
$vars = array();
$byteAlp=strlen("A");
$byteKan=strlen("漢");
$S = $byteKan-$byteAlp;

for($i=0; $i $n = $length; //文字数なので最大byteKan倍の半角文字数文を取得してしまう。
$wk = mb_substr($tmpBody, $i, $n,$enc);
while(1){
$K = (strlen($wk)-mb_strlen($wk,$enc))/$S;
$H = $K*2+(strlen($wk)-($K*$byteKan));
if($H<=$length){
$wkf = $wk;
break;
} else {
$n--;
}
$wk = mb_substr($tmpBody, $i, $n,$enc);
}
$vars[] = $wkf;
}
return implode($cr,$vars);
}