本番環境でRHELを使う事が多いので実験サーバー等にCentOSを良く使ってたりしますが、今日こんな記事を見つけて愕然としています・・・。
各言語のtrue/false
これは興味深いです。C言語は単純なので分かりやすいですが、PHPでは微妙に独自ルールがあるなぁ~と思っていたのでこういう表があるとわかりやすいですね。この結果から言えることは「真偽の判定式は面倒でも明示的にtrue/falseに収束するように書くように」ってところかな。今までもPHP等でif($obj)みたいなコードがバグの原因となっていたケースをよく発見していたので、変数が定義済かどうか真偽の二値に収束しているかしっかり書くように勧めたいと思います。
特にPHPは変数宣言を用意してない癖に値の型はC言語以上に細かいので条件に利用するときは面倒なこともあります。0(数値)とfalse(偽)とNULLとEMPTY(空文字列)とUndefined(未定義)のどれがやってくるかわからない場合の判別とか。
各言語におけるtrue/falseまとめ – 床のトルストイ、ゲイとするとのこと
http://d.hatena.ne.jp/mirakui/20090604/truefalse
ipf.logが大きくなってきた
ipf.logはFreeBSDで使っているIPフィルタのログファイル名ですが、特になにも気にせず放置してたら500MB超えていました。折角/var/log内に置いているファイルだしシステムでローテーションしようと方法を検索。
下記のページがヒットしました。なるほどnewsyslog.confで設定するんですね。
NetBSD3.0 i386 の /etc/newsyslog.conf について
http://rabbit-kernel.hp.infoseek.co.jp/it/newsyslog/
とりあえず次の一行を追加
/var/log/ipf.log 600 5 * $D0 Z
/var/log/ipf.logを「権限600」で「5世代」、「サイズ制限なし」で「毎日0時」だと思います。最後のZはなんでしょう?また日付が変わったらちゃんとローテーションできたか様子見です。