五粮液

知り合いが中国旅行をしたおみやげで「五粮液(ごりょうえき、ウーリャンイェ)」というお酒をいただきました。中国を代表する蒸留酒だそうです。いただいたといってもボトルを丸ごともらったのではなく、飲み会の中で皆で分けて少しずつ飲んだのです。


この五粮液、なんとアルコールが 五十数度!! これをショットグラスでストレートで飲んだのですが、かなりキツい。泡盛を漢方っぽく(薬っぽく?)した感じでしょうか。多分あまり知られてないと思うので濃い酒好きの方は一度試してみるのが良いと思います。泡盛好きならば気に入るかも知れません。


でも私は日本酒やワイン、紹興酒、更に濃いのならばウォッカあたり方が好きですけれど

電源交換

使っていた ATX 電源 SkyHawk GM-370PC がお亡くなりになってしまいました。PC が壊れると言ったらほとんどはハードディスクか電源ですね。今度は Delta 社 製のものにしました。


と交換してから調べてみると GM-370PC は5年間保証との情報が… これに気づいたのは、1年保証だと思い故障した物を捨ててしまった後でした。保証書はどこかに行ってしまっていて、きちんと探さなかったんですよね。


どのみち修理する間が困るので新しい電源を購入することにはなったと思うのですが、ちょっと損した気分です。

Yahoo ブログと META タグ DESCRIPTION と Google

イメージ

レイアウトチェンジの甲斐あってか以前に比べこの blog の多くのページが Google にインデックス化されるようになりました


で、一つ発見しました。


“site:blogs.yahoo.co.jp/blogger323” で引くとどのページもタイトルと内容の抜粋 (snippet) が全く同一になってしまっています。抜粋として表示されるのは「ブログ紹介文」に設定した文章ですが、Yahoo ブログではこれを META タグの DESCRIPTION として HTML が生成され、それを Google が拾っているのです。


「皆同じだと、ダメだよなあ」と思いつつ、キーワードを使って検索してみると、抜粋にはきちんとブログエントリのキーワードの周辺が引用されます。複数のキーワードで「ブログ紹介文」とブログのエントリにそれぞれ含まれる語を指定すると、「ブログ紹介文」とエントリの両方が抜粋に含まれるようになります。


確かに冷静に思い返すと抜粋が検索の仕方によって変わるのは当たり前なのですが、同一の文章を抜粋として複数のページが検索される様を目の当たりにして、一瞬焦ってしまいました。


“site:” を使って検索するのは自分ぐらいでしょうから、全然問題ないですね。

Cisco Adaptive Security Appliance Software Version 7

ここ1、2ヶ月は Cisco のファイアーウォール関連の仕事が続いています。Cisco ファイアーウォール製品 (PIX/ASA) の OS の最新バージョンが 7.X 台になりましたが、6.X 台と比べて多くのコマンドが変わりました。


「げっ、いままでの設定がそのまま入らないよ…。やばっ。」


というわけで慌てて調べたのですが、その成果をまとめておきます。今回は既存のシンプルなファイアーウォールの設定を古い機器& OS から新しく導入する ASA (Software Ver. 7.0) に移行したのですが、設定がシンプルと言えどコマンド変更の影響を受けました。工場出荷時デフォルト設定でも新コマンドがいくつか含まれているのです。以下私の場合に関連した変更点です。
・インターフェイスの設定方法の変更
Cisco ルータのようにインターフェイスコンフィグレーションモードに移行してから設定するようになりました。


interface Ethernet0/1
nameif inside
security-level 100
ip address 192.168.0.1 255.255.255.0
!


というような感じです。IOS のコマンドに合わせたということですね。
・access-list のクリア方法が変わった
access-list を消去するのに “clear configure access-list” コマンドを使うようになりました。一瞬消すコマンドがわからず焦りました。ちなみに1行だけ消すのは “no access-list” コマンドですね。
・fixup コマンドが inspect コマンドに変更
fixuup コマンドが inspect コマンド (+ Modular Policy Framework = MPF) に置き換わりました。とりあえず CLI で fixup コマンドを入力すれば受け付けて MPF のコマンド群に変換してくれるので、fixup コマンドを入力し結果を確認しましょう。変換後は以下のような感じになります。


class-map inspection_default
match default-inspection-traffic
!
policy-map global_policy
class inspection_default
inspect ftp
inspect http
(…)
!
service-policy global_policy global
・新コマンド “ftp mode passive”
アプライアンスの FTP クライアントの動作を指定します。ファイアーウォールの動作には関係ないです。デフォルトの設定で有効化されていました。
・新コマンド dns-guard
DNS Guard は DNS リクエストのヘッダ中の identification field を、レスポンスのヘッダとマッチさせて 1 query に対し 1 response のみ通信を許可する機能です。これもデフォルト設定では有効になっています。
・新コマンド “asdm image”
ASDM (Adaptive Security Device Manager) イメージ、すなわち管理用 GUI を用いるためのソフトウェアの位置を指定するためのコマンド。このコマンドが startup configuration に指定されていなければ、デフォルトの規則に従いイメージを見つけます。ASDM の初回実行後にこのコマンドが自動で追加設定されました。


ちなみに ASDM にアクセスするためには http コマンドで設定を行います。


http server enable
http 192.168.0.0 255.255.255.0 inside


準備ができたら、HTTPS プロトコル (ポートは普通に 443) でアクセスします。その後指示に従い Java のアプレットとして ASDM を実行するか、Launcher プログラムを手許の PC にインストールし、これを用いて起動します。
・conduit/outbound コマンドがなくなった
既になくなることはアナウンスされていましたが、とうとう conduit/outbound コマンドが使えなくなりました。って言っても使っている人は少ないかも知れませんね。私の最初に見た PIX の設定ではこれらのコマンドが使われていて「ふーん。PIX ってよくわかんねえなあ。」というのが第一印象でした。
・”logging on” が “logging enable” に変更


・”floodguard enable” の指定は機能が常時有効化されたので、不要となった
シンプルなファイアーウォールとしての設定を移行するだけでも、これだけの変更が関連しました。VPN 関連も変更があるようなので、関係する人は Upgrade Guide に目を通しておいた方が良いと思います。

「Web 進化論 本当の大変化はこれから始まる」

ちょっと遅いですが、あちこちで薦められているようなので読んでみました。


読んでみると、漠然と感じていたことがきちんと整理されて提示されたような気がしました。インターネットを利用している人は読むようにお勧めします。既に Amazonには書評がたくさんあるのですが、それを見つつ自分の感想を書いてみます。


「Google を持ち上げて/崇拝して/凄い凄いと連発して」というようなコメントが見受けられますが、Google の考えを書いたらそれが壮大なものだったので、持ち上げているように見えた、というのが近い気がします。


それと「あちら側」と「こちら側」に必要以上に意味を持たせようとしているコメントがありますが、この言葉自体はネットの「あちら」と「こちら」を指しているに過ぎません。今は「あちら側」が主戦場になっていて、「こちら側」で勢力を築きあげた企業は既存のビジネスモデルが制約となり一気に「あちら側」にシフトするわけにはいかない、ということでしょう。


主戦場が「あちら側」だからと言って、ネットワークを使う限り「こちら側」がなくなるわけでもありません。ちょっと考えてみると、ユーザが全ての情報を「あちら側」に移してしまうことは簡単に起こらないように思えます。例えばクレジットカード番号のような重要な情報を預けるに足るものだというような信用は時間をかけて作ってゆくものでしょう。筆者もこのあたりは認識していると思います。買い物をする時に提示して終わりなのと「あちら側」に移すのではレベルが違います。


私は「ブログが信用創造装置」というのが一番共感できました。まとまった量の文章を読むと自ずとその人となりがわかってしまいますよね。これだけブログが広まったのですから、ネット上では見知らぬ人との出会った時にその人を判断する材料としてブログは十分役割を果たせると思います。

Email::MIME モジュール

先のエントリに書いた通り bogofilter を使う前処理のために Email::MIME を使いましたが、このモジュールのインストールについて説明しておきます。perl は cygwin の 5.8.7 を使用しているのですが、Email::MIME モジュールを動かすために以下のモジュールを追加インストールしました。


・MIME-Types-1.17
・MIME-Base64-3.07
・Email-MIME-ContentType-1.01
・Email-MIME-Encodings-1.3
・Email-Simple-1.980
・Email-MIME-1.851


依存関係があるのでこの順でインストールします。それぞれ CPAN から探して取得し、ソースを展開後 “perl Makefile.PL; make; make install” を実行します。


それとインストールが終わってこのモジュールを使ったプログラムを実行する時の話なのですが、次のような Content-Type フィールドを含むメールの処理中に “Illegal Content-Type parameter at /usr/lib/perl5/site_perl/5.8/Email/MIME.pm line 13” というエラーメッセージが出ます。


Content-Type: text/plain;
Content-Transfer-Encoding: base64


どうやら “text/plain” の後に “;” が入っているのがまずいようです。”;” がないメールや “;” の後に属性の指定があるメールについてはエラーメッセージが出ません。ただ、エラーメッセージが表示されてもきちんとデコード処理等は行われているので気にしないことにしました。


そうそう、細かい話ですがドキュメントに、


my Email::MIME @parts = $parsed->parts;


とあるのは、


my @parts = $parsed->parts;


としなければ動きませんでした。

EOS Kiss Digital X 発表

ついに所有している EOS Kiss Digital N の後継機種が発表されました。すぐに買い換えようというわけではないですが、やはりどのようなものになっているか気になってしまいます。


内容をチェックしてみて惹かれてしまう変更点は、


・ゴミ対策
・9点オートフォーカス
・ピクチャースタイル搭載


あたりですね。画素数が多くなるのについては、その分扱うのにメモリー&プロセッサパワーが必要となるので今のままでも十分という気がしています。逆に細かいですが、バッテリーやバッテリーグリップが同じという点は買い替えを促されているような気がしてしまいます。


いえ、買いませんけれど :-)

bogofilter を正しく使おう

cygwin を更新すると bogofilter が動かなくなったので最新のソースからインストールし直しました。更に、プライベートではあまりメールを使わないのでこれまで真剣に取り組まなかったのですが、最近 bogofilter の判定精度がいま一つのようなので原因を調べてみました。するといろいろなことがわかりました。


・MIME エンコードされた本文がきちんと処理できていない
・データベースがいまひとつ


これまでのやり方はここに書いた通りです。
それぞれの問題の詳細を見てみましょう。
1) MIME エンコードされた本文
本文が MIME エンコードされたスパムが多くなっているのですが、これを nkf や kakasi に喰わせる前にデコードしなければなりません。あちこちの Web に nkf の “-m” で MIME デコードと書いてあったのでそれをそのまま信用していたのですが、実は “-m” だけでは何も起きていないことがわかりました。


参考までにnkf のソース(最新は 2.0.7) でオプションを解析する部分を見ると、


case ‘m’: /* MIME support */
/* mime_decode_f = TRUE; */ /* this has too large side effects… */
if (*cp==’B’||*cp==’Q’) {
mime_decode_mode = *cp++;
mimebuf_f = FIXED_MIME;
} else if (*cp==’N’) {
mime_f = TRUE; cp++;
} else if (*cp==’S’) {
mime_f = STRICT_MIME; cp++;
} else if (*cp==’0′) {
mime_decode_f = FALSE;
mime_f = FALSE; cp++;
}
continue;
(nkf.c より)


のようになっています。”-mB” とすると base64 のデコードをしますが、メール全体をデコードしてしまいます。


仕方ないので perl の Email::MIME を利用して MIME 形式のメールをデコードするスクリプトを作成しました。と言ってもとても簡単です。


#!/usr/bin/perl
# prebogo
use Email::MIME;

local $/;
my $message = <>;
my $parsed = Email::MIME->new($message);
my @parts = $parsed->parts;

print $parsed->_headers_as_string . “\n”;
foreach my $p (@parts) {
if ($p->content_type =~ /text/i) {
print $p->body;
}
}


これ (prebogo とする) を nkf の前に入れます。例えば newham スクリプトは次のようになります。


#!/bin/sh
prebogo | nkf -e | kakasi -w | bogofilter -n -v


判定用の bogo スクリプトは次の通りです。


#!/bin/sh
PATH=/bin:/usr/bin:/usr/local/bin:$PATH

for i in $*; do
prebogo $i | nkf -e | kakasi -w | bogofilter
if [ $? -eq 0 ]; then
echo $i
fi
done


「判定に用いるスクリプトのパフォーマンスが悪い」、「パートごとに charset が違うときはどうする?」、「content-type に “application/octet-stream” を指定してテキスト入れてくるスパムも除外したいなあ」等の問題はありますが、とりあえず今の段階ではここまでにしておきます。
2) データベースの内容
まずはどの程度の数のメッセージを学習させたか確認しようとしました。


bogoutil -w ~/.bogofilter/wordlist.db .MSG_COUNT


を実行すると学習させたメッセージの数が出力されるのですが、思ったほど数が増えていません。実は spam/ham の登録は、 mew の summary モードより以前の記事で作成した newspam/newham スクリプトを呼び出していたのですが、このときに bogofilter コマンドのオプションに “-N”/”-S” を指定して登録するのはまずいようです。


これらのオプションはメッセージを間違えて登録してしまった時にそれを取り消す場合のみ指定するもので、例えば “-S” については bogofilter のマニュアルに以下のような記載があります。


If -S is used for a message that wasn’t registered as spam, the counts will still be decremented.


ということは間違って登録したわけではないのにこれらのオプションを使ってしまうとカウントが減ってしまいます。


そこで newspam/newham スクリプト中の bogofilter 実行オプションを “-s -N” → “-s” 、”-n -S” → “-n” と変更しました。これも某所で見かけたオプションを深く考えず使っていました。newham は先の通りですが、newspam もついでに載せておきます。


#!/bin/sh
prebogo | nkf -e | kakasi -w | bogofilter -s -v


これらを改善してデータベースを作り直してから使うと大分判定が良い感じになりました。前の記事では書いていませんが、スパムだけでなくハム(正常なメール)も学習させておかなければなりません。特に nkf の “-m” オプションは、間違って使って「bogofilter は使えない」と思ってしまった人が結構いるのではないでしょうか。
教訓: きちんと自らオプションの意味を確認しなければならない。

2007. 6. 16 追記:

内容を修正して改訂版を作っていますのでこちらを参照ください。

(更に追記)
nkf はデフォルトの動作で、

Subject: =?iso-2022-jp?B?GyRCJUYlOSVIJWEhPCVrGyhC?=

のような行はデコードしてくれますね。いずれにせよ、

Content-Transfer-Encoding: base64

となっているパートをデコードしてくれるわけではないです。

ウイイレ10とゲーム打ち止め

実はW杯イヤーだから、ということでウイニングイレブン10を買って遊んでいました。ウイニングイレブン歴は、


・Jリーグ 実況ウイニングイレブン (95年版の元祖)
・ウイニングイレブン8
・ウイニングイレブン10


です。なので「8」の時は「おおっ」と思いましたが、「10」の時は「大した変化がないけどワールドカップメンバーで遊べるから・・・」という感じでした。
それでも、10を8に比べると以下のような理由から満足度が向上しています。


・ゴール前フリーのシュートが入りやすくなった
・トラップがしやすくなった
・オートトレーニングができるようになった
・名前を間違う実況が減った
・得点が入った後にメンバーチェンジができるようになった


マスターリーグをやり込んでメンバーも揃い、レベル星4つでも強豪と競り勝つようになりました。多くの人と同じように星3つと4つはかなり差があるように感じましたが、カーソルスピードをマニュアルからセミオートに戻したら調子よくなりました。こうなると気晴らししたいときはついついプレーしてしまうのですよね。


しかし。


仕事で疲れて帰ってくるカミさんの手前よろしくない&物心ついた子供にいつ見つからないとも限らない、というわけでゲームを卒業することにしました。決心が鈍らないようウイイレは夏休みに帰った実家においてきました。


実家で深夜にしっかり最後のプレーを楽しんでおきました。

てれびくん&テレビマガジン

息子の喜ぶ姿を見たくて、同じような雑誌を2冊も買ってしまいました。


「てれびくん9月号」=「リューケンドースペシャル DVD」が付いてくる
「テレビマガジン9月号」=「リュケンドーオリジナル魔弾キー」が付いてくる


テレビでは既に「ゴッドゲキリュウケン」しか出番がないようなのですが、この DVD だとこの前買ったばかりのフツーの「ゲキリュウケン」がふんだんに出てくるので、子供を納得させるのによいです。また、魔弾キーはその買ったばかりのゲキリュウケンに挿して遊ぶことができます。もともと付属していたキーに比べると挿したときの効果(サウンド&光)がチャチいのは、まあ仕方ないですかね。


おもちゃメーカーがプロモーションのために協力している企画なのでしょうが、昔から比べると付録はだいぶ豪華になっている気がします。メーカーが商売上手&必死になったということでしょうか。