書き始め

あけましておめでとうございます。

やっぱアウトプットは大事だよなと思いながら手を付けられずにいたのですが、年もあけて切りもいいというところでまたここでブログを書き始めようと思います。tumblrやらなんやらいろいろなところで作っては放置を繰り返してきた私ではございますが、今年こそ、今年こそはがんばりますよと。

ここ数年、フリーランスになったり会社設立したりであまりエンジニアっぽくない毎日を過ごしていましたが、今年はどっぷりと技術漬けで過ごしたいと思います。

特に今年はソースリーディングとOSSへの貢献に力を入れていこうと思ってます。

本年もよろしくお願いいたします。

リペア/リストア

mysqldumpによるデータのエクスポート

  • すべてのDBをエクスポート
mysqldump -u [ユーザ名] -p --lock-all-tables --all-databases > dump.sql
  • 指定したDBをエクスポート
mysqldump -u [ユーザ名] -p --databases db_name1 [db_name2 db_name3 ...] > dump.sql
mysqldump -u [ユーザ名] -p --no-data --databases db_name1 [db_name2 db_name3 ...] > dump.sql

復元

  • すべてのDBを復元
mysql -u [ユーザ名] < dump.sql 
  • DB指定
mysql -u [ユーザ名] db_name < dump.sql 

PHPでMecab利用

環境情報(2009/01/05追加)

CentOS5.2 / PHP 5.2.11

Mecabのインストール

CentOSyumでインストールできなかったので、ソースからコンパイルを行った。インストール先は/usr/localとし、辞書ファイルはutf8のみとした。

本体インストール
# tar xvfz mecab-0.98.tar.gz
# cd mecab-0.98
# ./configure --prefix=/usr/local --with-charset=utf8 --enable-utf8-only --enable-mutex
# make
# make install

./configureでこける(***.hが見つかりません)とでたらgccのアップグレード

$ sudo yum install gcc-c++
辞書ファイルのインストール
# tar xvfz mecab-ipadic-2.7.0-20070801.tar.gz
# cd mecab-ipadic-2.7.0-20070801
# ./configure --prefix=/usr/local --with-charset=utf8
# make
# make install
インストール確認
$ mecab -v
  mecab of 0.98

と表示されればOK。

ここまででMecab本体のインストールが完了。次はPHP経由で呼び出すためのExtensionを追加する。

php_mecabのインストール

ダウンロード

php_mecab

コンパイル
# tar xvfz php_mecab-0.3.0.tgz
# cd php_mecab-0.3.0
# phpize
# ./configure --with-php-config=/usr/bin/php-config --with-mecab=/usr/local/bin/mecab-config
# make
# make install
phpExtensionの登録

/etc/php.d/mecab.iniに以下を記述

; Enable dbase extension module
extension=mecab.so

設定後、apache再起動

$ php -i |grep -i "mecab"

mecabが設定されていればOK。
これでPHPからMecabを利用する環境が整ったので、早速簡単なサンプルで試してみる。

サンプル

文字列"すもももももももものうち"の名詞だけ抽出して出現頻度を数える。品詞IDについては、品詞IDの定義を参照。

<?php
$str = 'すもももももももものうち';
$mecab = new Mecab();

$keywords = array();
$nodes = $mecab->parseToNode($str);
foreach($nodes as $node) {
    if($node->posid >= 37 && $node->posid <= 66) {
        echo "品詞ID: " . $node->posid .":" . $node->surface."<br>";
        if(!isset($keywords[$node->surface])) {
            $keywords[$node->surface] = 1;
        } else{
            $keywords[$node->surface]++;
        }
    }
}
arsort($keywords);
print_r($keywords);

結果は

38:すもも
38:もも
38:もも
66:うち
Array ( [もも] => 2 [うち] => 1 [すもも] => 1 )

となり、正しく動いている模様。

あけましておめでとうございます。

あけましておめでとうございます。

早いもので21世紀がはじまってもう10年なんですね。この10年、何かを成し遂げたかと問われれば全力で"NO!"といえてしまうのが悲しいところですが、今年は次の10年への布石となるような年にしたいです。

去年はちょっと仕事も含め色々と身の回りがひどい感じで、特に12月なんかはほんともう人間不信になりそうな感じでした。まぁそんな状態でもきっかけというものは転がっているもので、新しい人との出会いとチャンスがありました。このあたり、仕事に対しては誠実にやってきてよかったなあと思った次第です。会社員としては落第ですがね。

今年はそのチャンスを活かしつつ、技術者としての自分をしっかりもって望みたいと思います。特にオープンソースのアプリケーション分野で、今やっているSugarCRM以外の製品にも積極的に触れていこうかなと。3年間製品のローカライズをやったおかげで、ある程度のノウハウはたまったのでこれを活かして別の製品のローカライズにも積極的に関わっていこうと思います。

そんなわけで、皆様方、今年もご指導ご鞭撻のほどよろしくお願いいたします!

displayParamsで指定可能なパラメータ(4)

displayParamsのまとめその(4)です。とりあえずこれですべてかな(ただし5.5で新規に追加されたCollectionフィールドは除く)。Collectionフィールドについては、用途なども含めて後日まとめようと思います。

それでは、いつものように一覧を挙げます。

続きを読む

Sugar5.5.1β1のオンラインプレビュー

本家SugarCRMサイトでSugar5.5.1β1のオンラインプレビューが公開されました。Sugar 5.5.1 Beta 1Online Preview

デモを試したいエディションを選択後、表示されるURLとユーザアカウントでログインすることができます。英語版となりますが、普段余り目にすることのないProfessional/Enterprise版を実際いじれる機会なのでぜひどうぞ〜(深夜はちょっとサイトレスポンスが悪いです)。
有償版利用時に試しておいたほうがいいポイントは、次の二つ。

カスタマイズモジュールを作成するときのヒントになるかもです。
特にチームの複数アサインは前エントリで述べたCollectionフィールドとなりますので、イメージをつかむにはちょうど良いかと。