« 2010年05月 | メイン | 2010年08月 »

2010年07月 アーカイブ

2010年07月01日

tarコマンドでバックアップ その2

/myfolder/mytarget1 配下の全ファイルと
/myfolder/mytarget2 配下の全ファイルを
/myfolder からの相対パスで、カレントディレクトリの backup.gz ファイルにアーカイブする。

tar -C /myfolder -zcvf backup.gz mytarget1 mytarget2

2010年07月02日

Vine5.1のviで矢印キーでカーソル移動できない

Vine4.2 までは vim がディフォルト インストール。
Vine5.1 からは vi がディフォルト インストール。これが原因。
vim を手動インストール。

apt-get install vim-huge
あとは、~/.vimrc を以前のような好みに設定。

続きを読む "Vine5.1のviで矢印キーでカーソル移動できない" »

2010年07月03日

tarコマンドでバックアップ その3

/myfolder/mytarget1 配下の全ファイルと
/myfolder/mytarget2 配下の全ファイルを
/myfolder からの相対パスで、カレントディレクトリの backup年月日時分秒.gz ファイルにアーカイブする。

tar -C /myfolder -zcvf backup`LC_ALL=en date +%Y%m%d%H%M%S`.gz
mytarget1 mytarget2

2010年07月06日

検索条件に論理積を使いたい

Ethna_AppSearchObject の 検索条件(Ethna 2.5.0 の標準)
OBJECT_CONDITION_NE
OBJECT_CONDITION_EQ
OBJECT_CONDITION_LIKE
OBJECT_CONDITION_GT
OBJECT_CONDITION_LT
OBJECT_CONDITION_GE
OBJECT_CONDITION_LE
OBJECT_CONDITION_AND
OBJECT_CONDITION_OR
に加え論理演算子の論理積を使えるようにする(MySQL5.0依存)。
Ethna_AppSQL.php の getCondition()で検索条件を判定しSQLを組み立てているので Ethna_AppSQL::getCondition()をオーバーライド。
しかし Ethna_AppObject内でオーバーライドしなければならないメソッドが多数あり、今回急ぎの為 コアのソースを直接修正。

続きを読む "検索条件に論理積を使いたい" »

2010年07月07日

検索条件に論理積を使いたい訳

Ethna_AppSearchObjectで前回拡張した論理演算子の論理積を使わないと例えば次のように記述。
$filter['pkey']	= new Ethna_AppSearchObject( null, OBJECT_CONDITION_NE );
$filter['pkey']->addObject( 'field', new Ethna_AppSearchObject( bindec('00000000000000000000000000000001'), OBJECT_CONDITION_EQ ), OBJECT_CONDITION_AND);
$filter['pkey']->addObject( 'field', new Ethna_AppSearchObject( bindec('00000000000000000000000000000100'), OBJECT_CONDITION_EQ ), OBJECT_CONDITION_OR);
$filter['pkey']->addObject( 'field', new Ethna_AppSearchObject( bindec('00000000000000000000000000010000'), OBJECT_CONDITION_EQ ), OBJECT_CONDITION_OR);
 :
これは次のように生成。
WHERE ( (pkey IS NOT NULL) AND field=1 OR field=4 OR field=16 )

2010年07月08日

検索条件の論理積に相当するアイデア

あらかじめビット判定した列をVIEWで追加定義・・・それより次のがスッキリ。
$field = array(
    bindec('00000000000000000000000000000001'),
    bindec('00000000000000000000000000000100'),
    bindec('00000000000000000000000000010000'),
       :
);
のような配列を定義して
$filter['field'] = new Ethna_AppSearchObject( $field, OBJECT_CONDITION_EQ );
と記述すれば次のように生成。
WHERE field IN (1,4,16)
ethnaへ手を入れずに済みDB依存も少ない。

About 2010年07月

2010年07月にブログ「Remix.asia」に投稿されたすべてのエントリーです。過去のものから新しいものへ順番に並んでいます。

前のアーカイブは2010年05月です。

次のアーカイブは2010年08月です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。