2005-01-10
● 天文学トイレットペーパー

国立天文台(東京都三鷹市)で学ぶ大学院生らが、「星の一生」を説明するイラストや文章を印刷したトイレットペーパーを試作した。生活の場で天文学に親しんでもらえる新たな普及手段として、学校や公共施設のトイレに置いてもらえるよう期待している。
中心になったのは東京大大学院生の高梨直紘さん (25)、平松正顕さん (24) ら4人。昨年秋、研究会後の懇親会で天文学の普及方法が話題になり、「毎日一度は使う」トイレに目をつけた。
ペーパーでは、宇宙空間のガス雲で「星の卵」が生まれ、核融合反応を始める「誕生」から、燃料の水素を燃やし尽くして膨張し、惑星状星雲となって拡散する「死」までを解説した。技術上の制約から 70 センチの長さの柄の繰り返ししか印刷できないが、「星の一生も繰り返されるからちょうどいい」(平松さん) と、これを逆手に取った。(毎日新聞)
入手方法と具体的なデザインの説明はtenpla.netにあります。/.J に掲載されたのでしばらくはものすごいアクセスなんだろうなぁ。
自分の直接的な知り合いがこうやって新聞記事などのメディアに掲載されるのって、嬉しいですね。その一方で、どんどん科学教育分野から離れていく自分がちょっとさびしい。
2005-01-17
● あれから10年
あれから10年。
憶えているのは、下から突き上げるような突発的な揺れ、そしてその直後の激しい横揺れ。昼頃になってテレビには燃え上がる街が映し出されていた。自分の周辺では被害はなかったものの、それでもすぐそば(でもないか…)の街が炎に包まれ家屋や道路が倒壊している様はかなりの恐怖でした。
あのときから、世のため人のために生きる人間になろう、と思っていたはずなのに、ここしばらくはフラフラと横道に逸れながら訳のわからないことを繰り返してきたような気がします。
直接的に自分について考えるきっかけとなった地震業界(?)からは出てしまったものの、今いる自分の業界で何ができるのか考える一年にしたいものです。一年といわず、今後もずっと。
それにしても、関東大震災は防災の日ということで現在も語り継がれていますが、阪神・淡路大震災は結局何かの記念日(祈念日?)にもならず、忘れ去られていくのでしょうかねぇ…
2005-01-22
● 電子メールと機種依存文字
まぁ、何を持って「機種」というのか、もはやWindows全盛期の今となっては今も昔、ではありますが。
さて、電子メールなのですが、当事者間で同意さえあればどのような文字コード(これまた曖昧な言葉ですが)を使っても構わないわけで、そりゃUTF-8でもISO-2022-JP-2 でも、好きなものを使えばいいと思います。
でも、いくらヘッダでUTF-8を指定しようとも、まともにUTF-8を扱えるメーラーがどれだけあるのか、そもそもUnicode 3.2を使うのかUnicode 3.1を使うのか、Shift_JISとUnicodeのマッピングはMS系なのかSun系なのかそれとも…などなど、いくらでも問題はあるのです。
それをまったく考えずに「Unicodeで送れば機種依存文字の問題なんて軽くクリア」「電子メールは原則UTF-8でお送りします」(nii.ac.jp)なんていわれると、今までの我々の苦労や努力っていったいなんなんだろう、と思います。まぁ、想像力の欠如といえばそれまでなんでしょうけど。
MathMLにしても、Unicodeの数学用演算子のうち半分以上が正しいグリフとして表示される環境なんてあるんでしょうか? 少なくとも、うちのWindows 2000環境では、特殊なフォントでも使わない限りこれらの記号は印刷にはとても耐え切れない小汚くて「なんとなくそれっぽい」記号しか表示されません。
もちろん、どうしても多言語の文章を書くときにはUnicodeも必要になってくるし、そんな状況での使用はしょうがないと思うんですけどね。実際、翻訳者一覧 (w3c.org)とかだと名前はきっちり母国語で書きたいし。
2005-01-23
●
apache リアファラspam対策
久々に awstats を導入してログを分析させてみて、一番に驚きなのはいわゆるリファラspam (referrer spam/referral spam)。tdiaryのようなリンク元を表示する日記を狙って、リンク元にまったく関係の無い宣伝URLを送ってきます。いい加減リファラ情報ってのはなくすべきなのかも知れない。一年前にはリファラspamってここまで酷くなかったと思うけどなぁ…。まったく迷惑なものが増えたものです。
まぁ嘆いていてもしょうがないので、2通りのやり方でブロック。一つ目は、apache 側で接続をはじくこと。もう一つは、ログの解析対象からはずすこと。前者はApache-Usersを参考に、refspam.conf を作成して httpd.confからInclude。後者は、同様のログを削除するperlスクリプト refspam.plを作成してawstatsに読み込ませた。最近の awstats (6.2) には、一応 referer_spam.pm というのがあるにはあるのだが、まったく使われていないというか、そもそも grep -R awstats/ 'referer_spam' をやってみても一切 use/require されていないので、使われていないんだろうと思う。将来的には使われるんでしょうかね…。
●
ログ解析の時間
ログ解析に2時間以上かかっている時点でそろそろサーバー乗り換えのいいタイミングなんだと思う。
wassy@node1 /home> df -h Filesystem サイズ 使用 残り 使用% マウント位置 /dev/ubda 2.0G 792M 1.2G 41% / /dev/ubdb 2.7G 2.5G 58M 98% /home /dev/ubdc 1.1G 303M 716M 30% /var none 61M 0 61M 0% /dev/shm
てゆーか /home あと 58M ですか…orz
wassy@node1 /home> top -b
20:51:07 up 151 days, 12:20, 1 user, load average: 0.08, 0.04, 0.00
55 processes: 53 sleeping, 2 running, 0 zombie, 0 stopped
CPU states: cpu user nice system irq softirq iowait idle
total 6.1% 0.0% 0.3% 0.0% 0.0% 0.0% 93.4%
Mem: 123816k av, 115384k used, 8432k free, 0k shrd, 7544k buff
15440k active, 45168k inactive
Swap: 263160k av, 24520k used, 238640k free 27196k cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
24853 root 17 0 14204 13M 1924 S 4.7 11.4 0:26 0 awstats.pl
24890 root 9 0 6912 6904 6708 S 1.4 5.5 0:01 0 httpd
25078 wassy 11 0 1212 1212 912 R 0.3 0.9 0:01 0 top
1 root 8 0 376 352 352 S 0.0 0.2 0:01 0 init
うーん、やっぱ linode じゃパワー不足かもしれない…。
●
AWStats の日本語処理
にしても、AWStatsの検索キーの日本語文字コード変換は相変わらずbuggyなので、とりあえず decodeutfkeys.pm で Encodings ではなく Jcode を使うようにしました。(ダウンロード → decodeutfkeys.pm) 標準モジュールのはずの Encoding とかが遅くて不正確だっていうのは皮肉ですね。まぁ、統一規格というのはいつもそうなのですが*1。
wassy> cat /usr/local/awstats/wwwroot/cgi-bin/plugins/decodeutfkeys.pm
#!/usr/bin/perl
#-----------------------------------------------------------------------------
# decodeUTFKeys AWStats plugin (Jcode.pm version)
# Allow AWStats to convert keywords strings coded by some search engines in
# UTF8 coding to a common string in a local charset.
#-----------------------------------------------------------------------------
# Perl Required Modules: Jcode
#-----------------------------------------------------------------------------
use Jcode;
use strict;no strict "refs";
#-----------------------------------------------------------------------------
# PLUGIN VARIABLES
#-----------------------------------------------------------------------------
my $PluginNeedAWStatsVersion="6.0";
my $PluginHooksFunctions="DecodeKey";
#-----------------------------------------------------------------------------
# PLUGIN FUNCTION: Init_pluginname
#-----------------------------------------------------------------------------
sub Init_decodeutfkeys {
my $InitParams=shift;
my $checkversion=&Check_Plugin_Version($PluginNeedAWStatsVersion);
return ($checkversion?$checkversion:"$PluginHooksFunctions");
}
#------------------------------------------------------------------------------
# Function: Converts an UTF8 string to specified Charset
# Parameters: utfstringtodecode charsettoencode
# Return: newencodedstring
#------------------------------------------------------------------------------
sub DecodeKey_decodeutfkeys {
my $string = shift;
$string =~ s/\\x([0-9A-Fa-f][0-9A-Fa-f])/%$1/gi;
$string =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg;
$string = Jcode->new($string)->utf8;
$string =~ s/[;+]/ /g;
return $string;
}
1; # Do not remove this line
(2005年8月13日追記)
ちなみに、これは今後のアクセスを変換するためのものであって、すでにログとして解析してしまったものの文字コードは変換できません。そこで、こんなスクリプトを使って、
mv awstats012005washitake.com.txt awstats012005washitake.com.txt~ cat awstats012005washitake.com.txt~ | perl awstatsconv.pl > awstats012005washitake.com.txt
などとして、ログファイルそのものを変換してしまいます。
*1 日本語以外も使えるようにしようとしているからなんですけどね
■ 花 [家計簿をつけるだけの資産があって羨ましいです。家計簿探してみます。]
■ wassy [資産があるから家計簿をつけるのではなく、 家計簿をつけないとヤバイほどの資産しかない、 つまり常に考えながらお金を使..]
■ fjsg [自分で作るしか]
■ wassy [最近、あったらいいなと思う(=作りたいと思う)ソフトが いろいろあって、時間がないのが悔やまれます。]