投稿者のアーカイブ


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

pg_basebackupを試す
- 2018/03/22
- aikawa
今回は、クラスタ化していないシングルなPostgreSQLでpg_basebackupを試してみました。
試した環境はCentOS7のPostgreSQL9.2です(pg_basebackupは9.1以降)。
まずはマニュアルを参考に。
https://www.postgresql.jp/document/9.2/html/continuous-archiving.html

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

pg_bigmで何かの全文検索を高速化してみたい
- 2018/01/16
- aikawa

QNAPのopkgを入れたらipkgが使えなくなった話
- 2017/11/28
- aikawa
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/

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

RoundCubeの容量円グラフを出す
- 2016/07/15
- aikawa
RoundCubeでフォルダ一覧の下に、円グラフで何パーセントとか出ますよね。あれですあれ。
単に表示させたいだけなので、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

PostgreSQL8.1で2カラムの日付検索にインデックスを使う
- 2016/06/24
- aikawa
RHEL5系、まだまだ現役です。2020年まで。
開始日と終了日の有るテーブルで、「今日」がこの期間内に有るデータを検索する場合、開始日と終了日で個別にインデックスを貼る事になるかと思いますが、極端に過去や未来のデータが多くなったりすると、片方のインデックスが無駄になります。
btreeで複数列にインデックスを作っても、そのままではインデックスを使ってくれなかったので、かなりねじった方向で出来ました。

SoundJSで、php経由のmp4を再生する
- 2016/04/15
- aikawa
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のエイリアスとして登録されているもの)を指定する事は出来ませんでした。