2002-03-03 [長年日記]

_ samba のエラー「セマフォがタイムアウトしました」

この samba の不具合が、私の手元の環境でも突然発症しました。 そこに紹介されてあった「セマフォがタイムアウトしました」のエラーが表示されるを参考に、/etc/hosts に列挙しまくるという方法で無事解決、というより回避できました。

for i in 2..254
  printf "192.168.1.%d dhcp%03d.hoge.org\n", i, i
end

というスクリプト hosts.rb を作り、ruby hosts.rb >> /etc/hosts としました。上記のスクリプトの IP アドレスやドメイン名などは適宜読みかえてください。

このエントリーを含むはてなブックマーク 

_ クールな日記 URI

tDiary with mod_rewrite のおかげで日記の URI をもっと汎用性のあるものにしようと画策中です。 まずはクールな URI は変わらないを参考にして、日記の URI を、

  • http://www.fdiary.net/~kazuhiko/diary/
  • http://www.fdiary.net/~kazuhiko/diary/2002/03/
  • http://www.fdiary.net/~kazuhiko/diary/2002/03/03/

とすることにしました。そのための必要最小限の .htaccess は、こんな感じです。

Options +FollowSymLinks
RewriteEngine on
RewriteBase /~kazuhiko/diary
RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)/ ./?date=$1$2$3
RewriteRule ^([0-9]+)/([0-9]+)/ ./?date=$1$2

さらに、plugin/anchor.rb を次のように設定します。

def anchor( s )
   if /^(\d{4})(\d{2})(\d{2})#?([pc]\d*)?$/ =~ s then
      if $4 then
         "#$1/#$2/#$3/##$4"
      else
         "#$1/#$2/#$3/"
      end
   else
      ""
   end
end

このままだと、http://www.fdiary.net/~kazuhiko/diary/2002/03/03/ にアクセスしたときに http://www.fdiary.net/~kazuhiko/diary/2002/03/03/2002/03/03/#p01 のようなアンカーができてしまうので、tdiary.conf (CGI で編集できない方) で @index と @update を次のように絶対パスで設定します。

@index = 'http://www.fdiary.net/~kazuhiko/diary/'
@update = 'http://www.fdiary.net/~kazuhiko/diary/update.rb'

しかし、これでもまだ、スタイルシートや画像へのリンクなどを相対パスで表記していると困ったことになります。一つのやりかたは、全て絶対パス書くことですが、もう一つ、これまた mod_rewrite で書き換えるというという技もあります。 ついでに、http://www.fdiary.net/~kazuhiko/diary/2002/3/3/ みたいな一桁表記にも対応させようとして、最終的にこんな RewriteRule になりました。

RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)/(.+)/(.+)$ ./$4/$5
RewriteRule ^([0-9]+)/([0-9]+)/([0-9])/ ./$1/$2/0$3/
RewriteRule ^([0-9]+)/([0-9])/([0-9]+)/ ./$1/0$2/$3/
RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)/ ./?date=$1$2$3
RewriteRule ^([0-9]+)/([0-9]+)/(.+)/(.+)$ ./$3/$4
RewriteRule ^([0-9]+)/([0-9])/ ./$1/0$2/
RewriteRule ^([0-9]+)/([0-9]+)/ ./?date=$1$2

私は diary/x/x にしかその他のファイルをおかないことにしているので上記でよいのですが、diary/x とか diary/x/x/x とかにファイルをおいている場合は、さらにそのためのルールを書き加える必要があります。

もし土佐日記をこれでやるなら 3 桁の年も 4 桁に正規化したくなりますが、まあそれはとりあえずパスしました。あと一万年問題も...

このエントリーを含むはてなブックマーク 
本日のツッコミ(全3件) [ツッコミを入れる]
_ きた (2002-03-03 15:14)

かずひこさんにこんなツッコミするのは恐縮ですが<br>(2..254).each {|i| puts "192.168.1.%d dhcp%03d.hoge.org" % [i, i]}<br>こんなのもアリかと.

_ かずひこ (2002-03-03 15:33)

私も早く↑こういうエレガントな書き方ができるようになりたいなぁ。

_ ほそのひでとも (2002-03-03 16:38)

do "whois hoge.org" ;-)<br>## こーゆーときはexample.orgとかを使いましょう(意外に知られていないようなので、勝手に普及促進活動モード)。

[]

トップ «前の日記(2002-03-02) 最新 次の日記(2002-03-04)»