投稿者のアーカイブ

CentOS7のPostgreSQL9.2で全文検索

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

(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail

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
Facebooktwittergoogle_pluslinkedintumblrmail

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

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

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

(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail

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のエイリアスとして登録されているもの)を指定する事は出来ませんでした。

Facebooktwittergoogle_pluslinkedintumblrmail

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
Facebooktwittergoogle_pluslinkedintumblrmail

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

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

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

(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail

今更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は動いたので、良しとします。

Facebooktwittergoogle_pluslinkedintumblrmail

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

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

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

(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail

RoundCubeのlabelの一部を上書きする

RoundCubeの各項目の名称を、書き換えるような事が何度かありました。
(受信箱や送信済みの名称について、古いメーラと合わせたいとか)
そういう時は、各言語のlabels.incやmessages.incを編集する必要が有りましたが、
1.0以降は、上書きする機能を提供しているようです。

(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail

RoundCube1.0で追加されていたCanned Responses

定型文的な使い方を想定していると思われる、Canned Responsesと言う機能が1.0辺りで追加されたようです。メール作成画面の署名の隣に回答が見えると思います。

canned_response01

※言語を英語に設定しているとResponsesと表示されます。

(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail