2010年3月14日日曜日

[Env] Sennaのインストール

とある案件でSennaを採用することになった。
Sennnaとは組み込み型全文検索エンジンです
Sennaプロジェクト

SennaをMySQLにバインディングするため、Tritonnをインストールする。
Tritonnプロジェクト

インストール環境
OS: CentOS release 5.4 (Final)[VM-Ware Fusion]


ビルドの大まかな流れ

1. MeCabをビルド
2. Sennaをビルド
3. Tritonnをビルド

Tritonnをビルドするためには、事前にSennaのライブラリ(libsenna)がビルドされている必要があります。またSennaをビルドするためには、MeCabのライブラリと辞書が事前にビルドされている必要があります(非MeCabなビルド方法は後述)。そこで上記のような手順でビルドを行います。


MeCabプロジェクト
gccをインストール
# yum install glibc glibc.i386
# yum install gcc*

y/Nでyを入力すること

g++をインストール
# yum install gcc-c++
少しイレギュラーなので注意

MeCabをビルド
# ./configure --prefix=/usr --with-charset=utf8
# make
# make install


# mecab-ipadic-2.7.0-XXXX
# ./configure --prefix=/usr --with-charset=utf8
# make
# make install

Sennaをビルド
# ./configure --prefix=/usr
# make
# make install


Tritonnをビルド
# ./configure --with-senna --with-mecab
error発生
configure: error: No curses/termcap library found
ライブラリが足りないらしい。下記コマンドでインストール。
# yum install ncurses-devel
# make
# sudo make install

ここも参考になる


最後の# make installが通らない。
y.tab.cがないとおこられる。

どうしたものか、調査中
(2010/3/14)

2010年3月10日水曜日

[PHP] キャッシュ手法まとめ

PHPでのキャッシュ手法をまとめる

1.中間コードキャッシュ
・APC
・eAccelerator
・XCache
・Zend Optimizer

APCが最も安定している
インストールコマンド
sudo aptitude install php-apc
sudo /etc/init.d/apache restart

管理画面apc.phpの導入
cd /usr/share/doc/php-apc/
sudo gzip -d apc.php.gz -c > /var/www/html/apc.php

GDのインストール
sudo aptitude install php5-gd
sudo /etc/init.d/apache restart

apache-benchコマンド
ab -n 500 -c 5 http://localhost/index.php
同時接続数5で500リクエストを送信


2.データキャッシュ
・ディスクキャッシュ
Cache_Liteの使用
インストール
sudo aptitude install php-pear
sudo pear install -Z Cache_Lite

・オンメモリキャッシュ

3.ページキャッシュ

2010年2月16日火曜日

[Reading] 2月読書リスト

2月に読んだ書籍
・ フリー~〈無料〉からお金を生みだす新戦略 クリス・アンダーソン、小林弘人、 高橋則明 (ハードカバー - 2009/11/21)

・日経新聞の数字がわかる本 「景気指標」から経済が見える 小宮 一慶 (単行本 - 2009/8/6)
経済に関する数字を意識できるようになったことで、日経新聞を読む際だけでなく、ニュースや雑誌で使用される用語につながりを見いだすことができるようになった。大変参考になった。

2010年2月15日月曜日

[MySQL] テーブルを結合するSQL

結合で使用するテーブル名には必ずエイリアスを貼りましょう。
SQL全体がコンパクトになり、見通しがよくなります。
構文:table_name AS alias_name

xoops_picoカテゴリテーブルより、特定のデータを抽出しカテゴリID順で並べ表示する
$sql = "SELECT cat_id, cat_permission_id, cat_title, cat_created_time, cat_extra_fields FROM xoops_gencontents_categories ORDER BY cat_id";

xoops_picoコンテンツテーブルより、特定のデータを抽出しコンテンツID順で並べ表示する
$sql = "SELECT content_id, permission_id, subject, created_time, extra_fields FROM xoops_gencontents_contents ORDER BY content_id";

コンテンツテーブルとカテゴリテーブルを内部結合
$sql = "SELECT con.cat_id AS cat_id1, cat.cat_id AS cont_id2 FROM xoops_gencontents_contents AS con LEFT JOIN xoops_gencontents_categories AS cat ON con.cat_id = cat.cat_id";

コンテンツテーブルとカテゴリテーブルを内部結合
$sql = "SELECT con.cat_title AS category_name, con.subject AS content_name, con.created_time FROM xoops_gencontents_contents AS con LEFT JOIN xoops_gencontents_categories AS cat ON con.cat_id = cat.cat_id"

コンテンツ、カテゴリテーブルとユーザーテーブルの3テーブルを結合
$sql = "SELECT cat.cat_title AS category_name, con.subject AS content_name, con.created_time, us.uname AS poster_user FROM xoops_users AS us INNER JOIN (xoops_gencontents_contents AS con INNER JOIN xoops_gencontents_categories AS cat ON con.cat_id = cat.cat_id) ON us.uid = con.poster_id";


以上です。

2010年2月8日月曜日

[Env] VMWare Serverを使用していて注意すべきこと

VMWare Serverは無料で使用できるため、重宝するが、
商用のVMWare Workstationと比較し、注意するべき点があります。

VMWare Serverはスナップショットを1つのみ許容します。
つまり、2つ目のスナップショットを取得した時点で、1つ目のスナップショットは破棄されるので、
うっかり必要なバージョンを消してしまわないよう注意が必要です。

VMWare Workstationではそのような制約はありません。
スナップショットマネージャーでいくつでも管理できます。


以上です。

2010年2月1日月曜日

[PHP] PEARのインストール

コマンドは以下のとおり

$go-pear.bat

Are you installing a system-wide PEAR or a local copy?
(system|local) [system] :

enter


以上です。

[Reading] 1月読書リスト

ソフトウェアアーキテクトが知るべき97のこと(Richard Monson-Haefel、鈴木 雄介、 長尾 高弘 2009/10/5)
第一線で活躍するソフトウェアアーキテクトたちが自らの経験よりアーキテクトが心すべきことを多くの観点から語る。業務に照らし合わせて読むことで大変参考になった。また、これからの設計業務においても、選択肢の視野を広げる良い機会となった。

SEが28歳までに身につける28の力 【第二版】 (技評SE選書) 中尾 真二、今井 孝、石川説明堂、 伊藤 直也 (単行本(ソフトカバー) - 2009/11/20)

WEB+DB PRESS Vol.54 WEB+DB PRESS編集部 (大型本 - 2009/12/23)
Google Waveの特集が興味深かった。

Web creators ( ウェブクリエイターズ ) 2010年 02月号 [雑誌] (雑誌 - 2009/12/26)