投稿者のアーカイブ

pg_bigmで何かの全文検索を高速化してみたい

こちら で使ったpg_bigmですが、どこかで利用出来るものはないかと思っていたのですが、そういえばSphinxを使った検索で日本語対応しようとしてunigramとか色々と入れてみたけど結局失敗してしまったTiny Tiny RSSが有ったなぁと思い、試してみました。

(さらに…)

Facebooktwitterlinkedintumblrmail

QNAPのopkgを入れたらipkgが使えなくなった話

ipkgが、QNAPのバージョンアップのたびに動きが怪しくなっていくので、こちらを参考にopkgを導入。
https://qiita.com/nak1114/items/b534cd3bd79db3e3f256

するとipkgの/bin等へのパスが切れたりして、ipkgで動かしていたhttpd+mod_dav_svnが動かなくなり、まだsvn使っているのでどうしようという事に。

調べた感じではopkgにはhttpdがなく、lighttpdくらいで、mod_davは使えなさそうです。

opkg list|grep http

仕方ないので、他の方法は無いかと見て行ったところ、subversionは有ったのでsvnserveで代用をする事に。
幸いリポジトリは一つのフォルダ内に複数のリポジトリ、という構成で作っていたので、リポジトリの一つ上のパスで起動させれば全部含める事が出来ました。

ipkg install subversion-server
ipkg install subversion-client
svnserve -d --root /path/svn/

各リポジトリのconf/svnserve.confを設定(ここは省略)。

最後にクライアント側をsvn switchで置き換えで一応完了となりました。

# 確認
svn ls svn://qnap/myrepo/
# 置き換え
svn switch --relocate http://qnap:8000/svn/ svn://qnap/
Facebooktwitterlinkedintumblrmail

CentOS7のPostgreSQL9.2で全文検索

PostgreSQLの全文検索でLudia, textsearch_sennaを使っていたのですが、9.2ではどちらも使えないので、代替となりそうなものを探した結果、pg_trgm, pg_bigm, textsearch_jaの三つが使えそうでした。
ただpg_trgmは日本語を使うにはソースからのコンパイルが必要で、しかも二文字以下は使えないのでパスしました。

(さらに…)

Facebooktwitterlinkedintumblrmail

RoundCubeの容量円グラフを出す

RoundCubeでフォルダ一覧の下に、円グラフで何パーセントとか出ますよね。あれですあれ。

rc_quota

単に表示させたいだけなので、MailDir++形式で全体を設定するだけです。
Postfix側のVDA設定とかユーザ別設定とかは除外。

いつも通り、こちらで使ったのを再利用。

設定するファイル

quotaで設定して、imap_quotaでIMAP経由で取得出来るようです。

  • /etc/dovecot/conf.d/10-mail.conf に追加
mail_plugins = quota
  • /etc/dovecot/conf.d/90-quota.conf に追加
plugin{
  quota_rule = *:storage=10M
}
plugin{
  quota = maildir:User quota
}
  • /etc/dovecot/conf.d/20-imap.conf に追加
  mail_plugins = $mail_plugins imap_quota

後は再起動するだけ。

service dovecot restart
Facebooktwitterlinkedintumblrmail

PostgreSQL8.1で2カラムの日付検索にインデックスを使う

RHEL5系、まだまだ現役です。2020年まで。

開始日と終了日の有るテーブルで、「今日」がこの期間内に有るデータを検索する場合、開始日と終了日で個別にインデックスを貼る事になるかと思いますが、極端に過去や未来のデータが多くなったりすると、片方のインデックスが無駄になります。
btreeで複数列にインデックスを作っても、そのままではインデックスを使ってくれなかったので、かなりねじった方向で出来ました。

(さらに…)

Facebooktwitterlinkedintumblrmail

SoundJSで、php経由のmp4を再生する

http://www.createjs.com/soundjs

SoundJSは、既定の拡張子以外をロードしてくれないので、そのままではphpから音声ファイルをロードしても再生する事が出来ません。
例えばphp経由でmp4を出力する場合、EXTENSION_MAPにphpの再生する音声ファイルの拡張子を指定して、SUPPORTED_EXTENSIONSにphpを追加する必要が有りました。

    createjs.Sound.EXTENSION_MAP["php"] = "mp4";
    createjs.Sound.SUPPORTED_EXTENSIONS.push("php");
    var sounds = {
        path:"./",
        manifest:[{"id":"sound1","src":{"mp4":"audio.php"}}]
    };
    var regist = createjs.Sound.registerSounds(sounds);
    if(regist){
        console.log("Success");
    }

なお、この方法ではphpから複数の拡張子を指定する事(例えばmp4とwav両方を再生する)や、
m4a(mp4のエイリアスとして登録されているもの)を指定する事は出来ませんでした。

Facebooktwitterlinkedintumblrmail

Open JTalkの辞書へ、単語を追加する

Open JTalkを触る機会が有ったのでメモ。
Open JTalkは、日本語も読み上げてくれるTTS Systemですが、ユーザ辞書は追指定出来ないようなので、直接辞書へ追加します。
ソースファイルの
open_jtalk-1.09/mecab-naist-jdic/
に移動して、naist-jdic.csvを編集します。

で、CSVの最後が鄧艾だったので、鍾会を追加してみます。基本コピペです。

...
鄧艾,1349,1349,516,名詞,固有名詞,人名,一般,*,*,鄧艾,トウガイ,トーガイ,1/4,*
鍾会,1349,1349,516,名詞,固有名詞,人名,一般,*,*,鍾会,ショウカイ,ショーカイ,1/5,*

makeして、doneが出たら、辞書を一時的にmakeしたフォルダで指定して音声ファイルを作成してみます。

make
出来上がったサンプルはこちら。
test.wav

これで問題なければ、make installで/usr/local/lib等へ設置されます。

make install
Facebooktwitterlinkedintumblrmail

RoundCubeのmanagesieveをちょっと使ってみる

こちらの記事で使ったサーバに引き続き、sieveを入れます。

  • 配送にはLDAとLMTP形式があるようですが、LMTPが流行らしいのでLMTPで。
  • postfixでvirtualドメインを使ってるとこれだと動かないので、またひと手間必要です。
  • CentOSのバージョンによって微妙に違いが有るようですが、多分動くと思います。

(さらに…)

Facebooktwitterlinkedintumblrmail

今更CentOS5+PHP5.1な環境にphpunitを入れる

保守等で現役だったりする、CentOS5+PHP5.1。

テストでSelenium(Selenese)を使うのに、外部サーバを使うのも面倒なので、CentOS5+PHP5.1な環境にphpunitを今更ながら入れてみました。
今のphpunitはPHP5.1では使えないので、epelのパッケージを利用してみます。

yum -y install epel-release
yum -y install php-pear-PHPUnit
pear upgrade pear

pearを実行しようとするとエラー。何故かパスが通っていないので、php.iniへ追加。

include_path = "[現在のPath]:/usr/share/pear"

これでpearはOK。

古いphpunitだとSeleniumの実行にインクルードが必要らしいので、
Selenium IDEからPHPUnit形式でエクスポートしたtest.phpに一行追加。
https://phpunit.de/manual/3.3/ja/selenium.html

require_once 'PHPUnit/Extensions/SeleniumTestCase.php'; // 追加行
class Example extends PHPUnit_Extensions_SeleniumTestCase

実行しようとするとSeleniumのクラスがcould not be foundになります。

phpunit test.php

phpunit3.4辺りでfixしてるようなので、githubから3.4を持って来て上書きしてしまいます。
https://github.com/sebastianbergmann/phpunit/tree/3.4

# rpm経由のphpunitを退避
mv /usr/share/pear/PHPUnit /usr/share/pear/PHPUnit-3.3.5
mv /usr/bin/phpunit /usr/bin/phpunit-3.3.5
# 3.4で上書き
unzip phpunit-3.4.zip
cd phpunit-3.4
mv PHPUnit /usr/share/pear/
cp phpunit.php /usr/bin/phpunit

実行。
取りあえずこれで目的のSeleniumは動いたので、良しとします。

Facebooktwitterlinkedintumblrmail

RoundCube用にCentOSのpostfix+dovecotで簡単なテスト環境を作る

RoundCubeは設定出来たけど、メールサーバが設定出来なくてテスト出来ない。
localhost内でやり取りする程度で十分だけど・・・そんな人へ。

実験したのはCentOS6です。
DovecotもPostfixもデフォルトの設定を利用するのであれば、設定は1,2項目で済みます。

(さらに…)

Facebooktwitterlinkedintumblrmail