投稿者のアーカイブ

再帰的問い合わせで、複数点間の経路的な使い方

少しだけ時間が出来たので、以前使おうか迷っていたPostgreSQLのWITH RECURSIVEを使って複数点間の移動経路と距離を求めるようなSQLを作ってみました。
※使おうと思ってた箇所は、計算Costが問題になりそうだったので、結局group化する列を追加して対応しましたが。

(さらに…)

Facebooktwitterlinkedintumblrmail

pg_basebackupを試す

今回は、クラスタ化していないシングルなPostgreSQLでpg_basebackupを試してみました。
試した環境はCentOS7のPostgreSQL9.2です(pg_basebackupは9.1以降)。

まずはマニュアルを参考に。
https://www.postgresql.jp/document/9.2/html/continuous-archiving.html

(さらに…)

Facebooktwitterlinkedintumblrmail

fail2banをRoundcubeに使ってみる

CentOS 6でfail2banを眺めていたらroundcube-authが有りました。
ログインに失敗した回数でBANするようですので実際に試してみました。
(さらに…)

Facebooktwitterlinkedintumblrmail

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