yubird のすべての投稿

mkvをmp4に変換するバッチスクリプト

mkv2mp4_flac1

よく使う割には手順が多くて面倒なのでバッチを作った。

h.264 + FLACなmkvファイルをmp4に変換する。
中身のFLACファイルはmp4には入らないので、AACに変換。
可変フレームレート対応。

使い方など
mkv2mp4_flac1 -v 0 -a 1 file.mkv [file2.mkv] [file3.mkv] …
事前に、ファイルのトラック番号をffmpegなどで調べる。
-v < ビデオトラックID> -a < オーディオトラックID>
ファイルは指定しただけ処理される。

続きを読む mkvをmp4に変換するバッチスクリプト

cakephp命名規則のメモ

種別 規則 例1 例2
テーブル名 複数形, アンダースコアケース users user_settings
カラム名 単数形,アンダースコアケース age modified
カラム名(キー) 主キーはid,外部キーは単数形のテーブル名_id user_id category_id
カラム名(予約語) name,title,created,modified,updated
モデル名 単数形キャメルケース User UserSetting
コントローラ名 複数形キャメルケース UsersController UserSettingsController
コントローラ名(URL) 複数形アンダースコアケース users user_settings
アクション名 アンダースコアケース index save
アクション名(URL) アンダースコアケース index save
ビューテンプレート名 View/コントローラ名/アクション名.ctp View/Users/index.ctp View/UserSettings/save.ctp

Ubuntu serverでNIC毎に宛先ルータを変える

Ubuntu server 12.04 LTSで2枚のNICを使って、それぞれ別のネットワークに接続。先のルータでは別々のプロバイダに接続していて、NICを指定して通信すると、使用回線を切り替えできるようにする。

まず、/etc/sysctl.conf を設定
28行目をコメントアウト

net.ipv4.ip_forward=1

保存したら
sudo sysctl -p
で適用。

次に、/etc/network/interfaces
今回はDHCPを使用せずに設定

auto eth0
iface eth0 inet static
  address 192.168.34.25
  netmask 255.255.255.0
  network 192.168.34.0
  gateway 192.168.34.254
  
auto eth1
iface eth1 inet static
  address 192.168.206.25
  netmask 255.255.255.0
  network 192.168.206.0

見ての通り、デフォルトのGWは192.168.34.254で、もう一方のネットワークにはGWを指定しない。

次に、/etc/network/if-up.d/routes
を新規に作成

#!/bin/sh
IF1=eth0
IF2=eth1
IF1_IP=192.168.34.25
IF2_IP=192.168.206.25
GATEWAY1_IP=192.168.34.254
GATEWAY2_IP=192.168.206.254
IF1_NET=192.168.34.0/24
IF2_NET=192.168.206.0/24
ROUTING1_NAME=gate1
ROUTING2_NAME=gate2

case $IFACE in
"eth0")
  # eth0
  /sbin/ip route add $IF1_NET dev $IF1 src $IF1_IP table $ROUTING1_NAME
  /sbin/ip route add default via $GATEWAY1_IP table $ROUTING1_NAME
  /sbin/ip rule add from $IF1_IP table $ROUTING1_NAME
;;

"eth1")
  # eth1
  /sbin/ip route add $IF2_NET dev $IF2 src $IF2_IP table $ROUTING2_NAME
  /sbin/ip route add default via $GATEWAY2_IP table $ROUTING2_NAME
  /sbin/ip rule add from $IF2_IP table $ROUTING2_NAME
;;
esac

保存したら実行権限を与える事。
ここはinterfacesで指定したIPなどと一致させるように記述。
あと、ROUTING1_NAMEとROUTING2_NAMEを覚えておくこと。

次に、/etc/iproute2/rt_tablesを設定

200 gate1
201 gate2

を追記。gate1, gate2 はroutesで設定したROUTING1_NAME, ROUTING2_NAMEと一致させる。

最後に、DHCP環境じゃなくても/etc/resolv.confが勝手に書き換わるようなので
/etc/resolvconf/resolvconf.d/base を書き換える。

nameserver 192.168.34.15
nameserver 192.168.34.12

これで再起動すると反映される。

pt2を多摩テレビ(CATV)で使う

今更だけどメモ。うちはテレビも無かったので、CATVのチャンネルがわからなくて苦労したので。

主にrecpt1とかepgrecの設定に使うチャンネル番号と局名の対応

C37: フジテレビ
C38: TBS
C39: テレビ東京
C40: テレビ朝日
C41: 日本テレビ
C42: NHK教育
C43: NHK総合
C44: 東京MX
C45: TVK
C46: テレ玉

最初総当りでチャンネル調べて、目視で局ロゴみて判定した。
他は特にCATVだからといって違う部分は無い。

Macのsambaをマウントする時、濁点と半濁点が化ける

MacのsambaをLinuxでマウントしたら、濁点と半濁点が文字化けした。んで、その時の対応策。Windows7では化けなかった。

Mac側のsmb.confで

unix charset=UTF-8-MAC

を指定する。UTF-8-MACは、Appleがiconvを拡張した物らしいので、Mac以外でlibiconvを使っているソフトでは使えないらしい。

Linux側の/etc/fstabで

iocharset=utf8

を指定する。

FreeBSDでNFSマウントされたホーム+zshでcompinitするとログインが激遅

FreeBSD 8.2でも 9.0-RC3でも同じだけど、NFSでマウントされたホームディレクトリで、zshをログインシェルにしていて、zshの設定でcompinitをしていると、ログインがめちゃくちゃ遅い。ログアウトも遅い。
あまりスマートじゃないかもしれないけど、NFSがいかんのならローカルにzshのファイル置けばいいじゃない。と
.zshrcに以下の6行を書き加えてみた。

autoload -U compinit
if [ "$OSTYPE" = "linux*" ]; then
  compinit -d ~/.zcompdump_${HOST}
else
  compinit -d /usr/home/$USER/.zcompdump  
fi

保存先のディレクトリは作っておかないといけないけど、別になくてもログインできなくなったりはしないっぽい。

dovecot-sieveでメールフィルタ

ローカル用メールサーバにFreeBSDでExim+dovecotを使っているんだけど、ローカルメールの振り分けにdovecot-sieveを使ってみたのでメモ。
sieve自体はrfcに登録されてるんだけど、とにかくexampleばかりで言語仕様が探しにくかった。
今回やりたかったのは、Cronからのメールをホスト毎に別のディレクトリに振り分け。

で、出来たフィルタファイル

require "fileinto";

if allof(address :is :domain "From" "yubird.com",
         header :contains "Subject" "Cron") {
  fileinto "Cron.atlas";
} elsif allof(address :is :domain "From" "atlas.yubird.com",
         header :contains "Subject" "Cron") {
  fileinto "Cron.atlas";
} elsif allof(address :is :domain "From" "lain.yubird.com",
         header :contains "Subject" "Cron") {
  fileinto "Cron.lain";
} elsif allof(address :is :domain "From" "noel.yubird.com",
         header :contains "Subject" "Cron") {
  fileinto "Cron.noel";
} elsif allof(address :is :domain "From" "tessa.yubird.com",
         header :contains "Subject" "Cron") {
  fileinto "Cron.tessa";
} elsif allof(address :is :domain "From" "tristain.yubird.com",
         header :contains "Subject" "Cron") {
  fileinto "Cron.tristain";
} elsif allof(address :is :domain "From" "zeffiris.yubird.com",
         header :contains "Subject" "Cron") {
  fileinto "Cron.zeffiris";
} else {
  keep;
}

当然だけど、必要なメールディレクトリは作っておかないといけない。

iTunesのライブラリ保存先を変えた場合にファイルが見つからなくなったりする

WindowのiTunesでライブラリをD:\からZ:\(ネットワークドライブ)に移動して、iTunes上からZ:\を使うようにしたら、所々ファイルが見つからないとか騒いだので、xmlを直接編集してみた。

C:\Users\yubird\Music\iTunes\iTunes Music Library.xml を編集

file://localhost/D:/

file://localhost/Z:/
に全置換したら治った。所々見つからなくなるってこれ、バグじゃないの?