Tru64UNIX だと iconv の引数が "eucJP" でないとだめだった。
逆に、Linux (GNU iconv) には "eucJP" があるんだから "eucJP" を使うほうがポータブルかなあ。 Solaris も調べる必要があるな。
(21:19)
Solaris だと何やってもエラーが出るよ〜……と思ったら、 そもそもテーブルが入ってなかった。そりゃ動かないわな。 SUNWloc, SUNWjiu8, SUNWjfpu をインストール。
む、Solaris も eucJP なのか。 やっぱりこっちのがよさげだな。
@referer_day_only を指定するときれいにアンテナをはじいてくれるのだが、 アンテナが全然記録されなくなってしまうのも悲しい。 「これはアンテナ」という情報だけを記録しておけるといいかもしれない。 そこでこんなパッチをでっちあげた。
--- tdiary.rb.org Thu Jan 29 19:18:47 2004 +++ tdiary.rb Thu Jan 29 21:30:46 2004 @@ -1257,7 +1257,7 @@ module TDiary super # save referer to latest - if (!@conf.referer_day_only or (@cgi.params['date'][0] and @cgi.params['date'][0].length == 8)) and referer? + if referer? ym = latest_month @date = ym ? Time::local( ym[0], ym[1] ) : Time::now @io.transaction( @date ) do |diaries| @@ -1268,7 +1268,11 @@ module TDiary break if @diary.visible? end if @diary then - @diary.add_referer( @cgi.referer ) + referer = @cgi.referer + if @conf.referer_day_only and @cgi.params['date'][0].to_s.length != 8 + referer = 'http://antenna.example.com/antenna/' + end + @diary.add_referer( referer ) dirty = DIRTY_REFERER end dirty
こうしとくとアンテナからのアクセスが全部 antenna.example.com にまとまって記録されるわけだ。 今日の日記の「various antennas」というのがソレ。 最初はちょっとコードが間違っていたため 他のアンテナも出てしまっているが、明日以降はうまくいくはずだ。
(00:14)
追記: @referer_day_only を流用する必要はないじゃん。 専用の変数を作るほうがいいな。
Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved.
そのための charset_alias.rb じゃないですか.多分.make の時に何かしないと
iconv.rb を作ってくれないようですが.config.charset を持ってきておいてお
けばいいのかな?
です。config.charset を本家から持って来るでもいいですし、とりあえず手軽にこんな内容で作ってテストしてみても良いかと。
#!/bin/sh
# ${newname} \s+ ${oldname}
cat <<EOD
EUCJP EUC-JP
EOD
いや、実は、このテストはクックブック用にやってたので、
できるだけ追加操作はなしで通したかったんです。
例えば自分で iconv を使ったプログラムを書く場合、
それをインストールする人が config.charset をいじる
必要があるわけですよね。
ちなみに手元でテストできる範囲だと
eucJP, ISO-2022-JP, UTF-8, SJIS
なら全環境で通ります。
config.charsetはLGPLなんで、入れちゃっていいものかどうかと。
あと、それからの生成物はどうなるのかとか。
あの情報を改めて自分で集める気にはならないし。
それは確かに。自分の使う範囲だけ(日本語関係)
だったらどうにかなりそうですけど、全部だと…