2009-06-30 [長年日記]
_ linkchecker を OSX w/ py25 で使う
複数の人間で Web を作る場合、最後にリソースが適切に揃っているのか統一的にチェックする手法が必要になると思います。*1
その際、どういうツール使うのがいいのかなーと去年調べまして、今のところ
Check websites for broken links ― LinkChecker
がいいのかな、と考えています。Python を使ってて Windows でも Linux でも動くし、結果が見やすいのも気に入っています。
しかしこれ、OSX で動かそうとしたときにハマります。*2
File "/sw/lib/python2.5/site-packages/linkcheck/director/console.py", line 30, in <module> stderr = codecs.getwriter(_encoding)(sys.stderr, errors="ignore") File "/sw/lib/python2.5/codecs.py", line 930, in getwriter return lookup(encoding).streamwriter LookupError: unknown encoding: X-MAC-JAPANESE
はいはい、ぐぐる先生ぐぐる先生。
……。
ねぇ。どんだけ調べても linkchecker でこの現象にハマっている事例は見つかりません。見つかるのは Django とか Trac とか。くそー、linkchecker はマイナーだったか。
で、どうもこれは Mac で Python のツールを動かすときには必ずハマる道らしい。うへー。ばかばかしくね? ばかばかしくね?
というわけで今回は以下のように修正しました。
こう直すべきなのかどうかは分からないです。
Python 2.6 で直ってるとかいう話もあるようですが、すべてのツールが 2.6 で動くように書かれてるわけでもないでしょうし、なかなか面倒な話ですね。
※ たぶん Python 2.6 を入れた状態で、fink も macports も使わずに野良で、あるいは自分でそれ用のパッケージを作って linkchecker を入れればいいんじゃないかなという気がしますが、やってみていません。
2009-05-25 [長年日記]
_ bind を上げてちょっとハマって反省した
bind 9.4 以降の allow-* の設定
Debian を etch から lenny に上げた関係で bind のバージョンが上がった*1。そしたら別セグメントのネットワークから forward 先の DNS を引けなくてちょっとハマったので覚え書き。
acl "allowed-hosts" {
.. ;
.. ;
};
options {
allow-recursion { "allowed-hosts"; }; // <- added
allow-query-cache { "allowed-hosts"; }; // <- added
};
こんな感じみたい。
default が localhost.localdomain なのでこの設定を明示しておかないと別セグメントのネットワークからは DNS が引けないとか forward されないといった問題が起きる。*2
allow-recursion, allow-query, allow-query-cache 辺りは互いに補完するような関係らしく、ややこしいのであまり突っ込む気なし。
今回のケースはサーバのそばにいる自分の環境からは検証できない現象なので、気づくまで時間が掛かってしまった。うーん反省反省。
bind-announce のチェック
※ ここから先は実は5月26日の話
bind のアップグレードはいつも気を使うんだけど、日常的にはちゃんと情報を追いかけてなくて、たいていちょっとトラブる。(そんな長い時間じゃないんだけど。)
なんで bind の情報に追いついていないのかなと思ったら案の定 feed を購読していないから。そもそも bind は本家がどこかもよく分かっていないような状態で、そらいかんわなと反省。
で、feed を探すが見つからず。こういう古いアプリはサイトの作りも情報の告知方法も古いのが世の常。bind-announce という ML があるのは分かったが ML にはもう入りたくない。
そこで Nabble という ML アーカイブサービスを思い出した。これは ML のアーカイブを独自に作れて、かつそれを rss にも変換してくれるサービスなのだ。sign up して…えーとオレが思い描いているのとすでに画面が違うっ。使ってないのバレバレ。
あれこれ試行錯誤したが違うサービス上ですでに bind-announce の feed が配信されているのを発見。あーじゃあこれでいいじゃん。
Gmane -- Mail To News And Back Again
ということで FLDR で subscribe 完了。よしよし。
cf.
2009-05-22 [長年日記]
_ PukiWiki の calendar_viewer plugin 改再び
久しぶりに何か書いたか思ったら diff を貼り付けただけというテイタラク。
2005年にも一回やってる んだけど、git と gist を使って 1.4.7_notb バージョンを出してみる。相変わらず PukiWiki 関係は一つのブロックがものすごくでかくて追うのがつらい。
特に変わったところはないんだけど、なんか行番号が合わずにどこに何を入れたか考えるのが面倒になったのでロジックだけ頭に思い出してコピペしてしまった。
これで一応リリースされた PukiWiki の最新バージョンには追いついたので PHP を 5 に上げられる。
そのうち DokuWiki 辺りにするのがよいのかねぇ。最近 Wiki で熱い人を見かけなくなったので分からなくなってしまった。
2009-05-21 [長年日記]
_ Capistrano :ssh_options 再び
以前Net::SSH で明示的に password 認証にでまったく同じ現象に悩んでいたんだけど、またハマったのでもう一度書く。
ポイントは
自分の ssh_config と秘密鍵を認証に使いたくない
で、これの実現のためには
set :ssh_options, {
:config => false,
:keys => []
}
と設定されていればよい。(:keys => nil はダメ)
set :ssh_options[:auth_methods], 'password'
だけでうまくいくんじゃないかと思ったけど、これはなんでかうまくいかなかった。ちゃんと内部で password 認証だけに絞られてるように見えるんだけど、そういうわけではないのかな。
Capistrano 2.5.5 で確認。
それか capistrano で使う秘密鍵の名前はデフォルトとは別な名前にしておくという方針がいいのかもしれない。
_ git cvsimport -C DEST
Subversion と Git の場合、git-svn という便利なツールがあるらしい。使ってないからよく知らないけど絶賛する声をよく聞く*1。
でも CVS の場合はそこまでいいものはない。一応 CVS リポジトリの import 自体は working copy 上で
git cvsimport -C DEST
って打つと DEST 上に .git/ を作って import してくれる。ただし cvsps という別なツールに依存しており、かつ普段の git のスピードからは想像がつかないくらいの時間が掛かる。
それでも git log が使えるというメリットは結構大きい。日常的に git にも CVS にも commit しますという目的に使うのは厳しいみたいだけど、コードを読むという目的には十分使える。
cf.
*1 自分の場合は git と生の svn を別々に使うので特に不満はない。