DHCP + Macのインターネット共有 + Linux on VirtualBox on Win
の環境で
Linux上でDNSサーバの見つからない現象
に遭遇して困ってた。最終的には /etc/resolv.conf で DNS サーバを教えてやって解決した。
しかし改めて図を描くと意外に複雑。環境が複雑になってくるとどこでハマるか想像つかないので、ちゃんと一つずつ丁寧に確認していかないとダメだなぁ。
前回からまたずいぶんと空いてしまったけど、気になっていたことをひとつ。それは
吐いた feed のタイムスタンプは必ず更新されてしまう
というごく当たり前の事実。
これの何が問題かっていうと、できた feed をそのまま Web に公開すると、必ず Etag が変化してキャッシュが効かず、結果、feed を生成するたびに更新扱いになってしまうという点である。
要するに feed reader 上で更新されたものしか表示しないようになっていても、内容に変化がないのに必ず更新されましたよ、と顔を出してくるということである。
これが邪魔だ。
解決方法を考えたけど、アプローチは二つほどありそうな感じ。
- feed を吐く際に既存の feed をキャッシュとして活用して内容に変化がなければ生成し直さないようにする
- 吐いた feed を直接公開しないで、公開用の場所にダイジェストで確認しながらコピーを行う
1 は要するに Yapra を直すという話で、これが可能ならスマートだなぁと思ってはいる。特にキャッシュとして使う辺りは生成した feed のタイムスタンプが変わるか変わらないかよりも大きな話で、これが実現可能なら例えば EFT でも無駄に同じエントリを再取得しなくてよくなるかもしれないと思っている。
2 はそのままの話で、例えば rsync なら –checksum だし、sitecopy なら state checksum というパラメータを追加してやればよい。
当面は 2 かなーと思っている。思いついたのは数日前で、ここの FreeNAS の feed の転送の設定を変えたのは今日のことなので、明日の昼に更新通知がこなければオッケー。
というかこの辺、Plagger の人たちはどう対処してるの? feed 生成って実はあんまり需要がなくて、feed を食わせて mail なり irc に転送する方が主流なの?
8月にやたら Amazon さんから荷物が届いたおかげで金銭感覚がマヒしつつある。勢いあまって 『Perl ベストプラクティス』もほしいなぁとか思い始めているから怖い。まぁ特に Perl は普段使わないようにしている分、自分の中の知識というかクセがかなり古くなっている自覚はあって、『救命病棟』も持ってるけど、これよりもっと細かいレベルでかつ具体的にこうすべしというノウハウに溢れるベストプラクティスに惹かれつつある。
ぶっちゃけ金銭的にキツイわけでもないし、持ってて損はしないとは思うんだけども、場所の確保がねぇ。(Perl メインのお仕事なら絶対買うけど。)あと Perl 関係の本て他にも『システム管理』とか魅力的な本がたくさんあるので歯止めが効かなくなりそうってのがいちばん恐ろしいポイントなのかも。
ということで、ここのところ毎日 Web 上の情報収集だけに留めようと必死に抵抗している。HACKS と違って自分用のメモがどうにか構築し終わればこの熱は冷めると信じている1。
HACKS シリーズを全部自分のメモで代用するのは無理。 ↩
普段 FreeBSD や Debian などパッケージ管理のいきとどいた OS を使っており、ViewCVS はしっかりそのパッケージツリーの中にある。だからサーバ用に ViewCVS を起こすときは野良から入れることはまずない。
でも自分の作業環境用にも ViewCVS がほしいとなったら話は別。システム共通のものではないので、ホームディレクトリ以下だけで完結したい。
ViewCVS はアーカイブを紐解いただけでまずそのまま使える。しかし一応 installer がついている。これを使うと特定のディレクトリの下に ViewCVS をガラガラとコピーしてくれる。
このとき、インストール先はインタラクティブに指定できるのでインストール先さえ決めておけば、何も考えず(ごそごそと設定ファイルをいじったりせずに)にインストールスクリプトを動かしてしまってよい。
インストールが完了したら設定ファイルに CVS リポジトリの場所を教えてやる。
db のパスワードがらみで ViewCVS は http でアクセスできるところに置かずに ScriptAlias を使う設置方法が推奨されているが、個人利用の場合はそんなものはお構いなし。逆に、suexec 環境で使おうと思うと Alias 周りはややこしい。直接 cgi スクリプトを http でアクセスできるところにコピーしておこう。
まとめ
- インストーラがインストール先を尋ねてくれるので安心
- suexec 環境では viewcvs.cgi は直接 www に晒してしまおう
OS X
- ネットワークに繋がっていない状態でアダプタに「システム環境設定」の「ネットワーク」で固定 IP アドレスを割り当てても反映されない。(システム環境設定上ではその IP アドレスになっている。)
- コマンドラインで以下のように叩けば設定できる。
sudo ifconfig ADAPTER ADDR
Classic 環境
- コントロールパネルに TCP/IP の設定がない
- OS X から勝手に情報を引き継いで OS X 自体が持っている IP アドレスとは別なアドレス体系を自分で持ってるみたい
- OS X の Apache に localhost や 127.0.0.1 で接続できないので
どっかのサーバで classic からのアクセスがどういう風に見えるのか確認した方がいいかもしれないが、要するに Adapter が inactive の場合、Classic 環境から OS X のネットワークサービスに接続する方法はない。
したがってネットワークから切り離されたところで Netscape 4.x の挙動の確認作業は行えません。
9月になったことだし(特に意味なし)、以前ちょっと動かしただけでやめていた eclipse をもう一度試してみることに。いちばんのキモは xyzzy でアウトライン表示をさせる方法を調べるのが面倒だから。
- eclipse-platform 2.1.1 + LanguagePackage + Patch(java しないので)
- webstudio 0.3.4(PHP 周り)
- core
- phpdocumentor
- manual
- solareclipse(HTML, CSS エディタ周り)
を入れる。プロジェクトを workspace とは別な場所で管理したり、プロジェクトと CVS の同期方法もまぁ分かったのでこれはなかなか使えそうな雰囲気。FTP と WebDAV を使ったサイトの更新も楽チン。phpdocumentor がその場でサクっと動かせるのはかなり便利だし。とは言え、コマンドラインな CVS とか xyzzy とかともちろん併用になるとは思いますが(^^;(WinCVS はステ成功っぽい。)
phpdocumentor は 1.1.0 とちょと古め。あと、php 4.2.4-dev ではうまくドキュメントを生成できなかったので 4.3.3 にした。いい具合。あとは Another HTML-lint と HTML と CSS の適当なリファレンスがあれば stand-alone なノートでもけっこう使いものになるかな。
わざわざ namazu に突っ込んであるマニュアルを見るためだけに ssh するばからしさから解放される日も遠くはないか?