前回からまたずいぶんと空いてしまったけど、気になっていたことをひとつ。それは
吐いた 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 に転送する方が主流なの?