2007-08-26

だいたい、日本人の尊敬の意識は個人に対する理解の成熟によって発展してくるものであるよりも、恐怖に始まり、畏怖→畏敬→尊敬→敬愛→親愛→愛狎(あいこう)→軽蔑というような道を通ることが多く、根本的には恐怖が意識の底にあると考えられる。

大野晋『日本語の文法を考える』

リポジトリでウェブサイトを管理しています。実際のサイトを、コミットするたびに自動的に更新させるにはどうすればよいでしょう?

原文: I’m managing a website in my repository. How can I make the live site automatically update after every commit?

こうしたことは昔から行われていて、post-commit フックスクリプトをリポジトリに加えるのが定石です。第5章のフックスクリプトの項を参照してください。基本的な考えとしては、実際のサイトをたんなる作業コピーにしておいて、post-commit フックスクリプトでその作業コピーに対して svn update を実行します。

運用時に注意すべき点がいくつかあります。post-commit フックスクリプトを走らせるのは、コミットを処理するサーバとなっているプログラム(svnserve なり Apache なり)自身です。このことは、そのプログラムが作業コピーを更新するのに適切な権限を持っていなければならないということを意味します。言い換えると、svnserve や Apache を走らせているのと同じユーザーが作業コピーの所有権も持っていなければならない、あるいは、少なくとも作業コピーのほうに適切な権限が設定されていなければならないということです。

サーバプログラムに所有権がない作業コピー(たとえばユーザー joe‾/public_html/ 内など)を更新させなければならないのであれば、更新を実行する +s 付きのバイナリプログラムを作成するという手があります。Unix では、スクリプトは +s 付きにはできないのです。次のような C プログラムをコンパイルします。

#include <stddef.h>
#include <stdlib.h>
#include <unistd.h>
int main(void)
{
  execl("/usr/local/bin/svn", "svn", "update", "/home/joe/public_html/",
        (const char *) NULL);
  return(EXIT_FAILURE);
}

そしてできあがったバイナリに対して chmod +s して、その所有者が joe になっているのを確認します。そうして、post-commit フックにこのバイナリを実行する行を加えるのです。

フックを動かすのに問題が生じたら、“Why aren’t my repository hooks working?” を参照してください。

また、ふつうは Apache に実際のサイトとなる作業コピーにある .svn/ ディレクトリを公開させたくはないでしょうから、httpd.conf に次のように追記します。

# Disallow browsing of Subversion working copy administrative dirs.
<DirectoryMatch "^/.*/¥.svn/">
    Order deny,allow
    Deny from all
</DirectoryMatch>

さくらのレンタルサーバでは

DirectoryMatch ディレクティブは .htaccess では使えないので、上掲のノウハウはさくらのレンタルサーバでは使えない。ちぇ。

ThinkPad X60s のパームレストが熱くなる

ウェブでもけっこう言われているようだけど、AC 電源で使っていると、右側パームレスト(ここには無線 LAN のカードが収まっている)がいやな感じに熱を持つ。最近のラインでそれ以前のから改良が加えられたりしているようですが、自分のはどっちなんだろう。改良されててこんなに熱いってのはないのかな。なんにしても、気が散るのでよろしくないです。いままで ThinkPad でこんなことはなかったぞ。

それにしても、「X60s – ThinkPad X60s/X40/X31 メモ」というページはすごい。読み応えある。

チェア

チェアっていうか、椅子。帰宅してからもパソコン叩いたり書き物をしたりと怪しい作業に没入する生活なので、椅子に座っている時間が長いのです。その割にはちゃんとした椅子を使っていたことがない。今家のデスクで使ってるのは CCH-L001OR ですが、これだって昔働いてたとこからのもらい物です。これになるまでは折りたたみの小さくて硬い椅子をずっと使ってた。なんだ自分、苦学生かよ。

腰痛になることもしばしばだし、いいかげんちょっとまともな椅子を買ったほうがいいかもしれない。アーロンチェアとまではいかなくても、長時間きくやつを。下に車輪が付いてるやつと付いてないやつと、どっちが疲れにくいとかあるのかな? 先日人とそういう話をしましたが結論が出なかった。