宇都宮線にて埼玉を目指したら、異常音が発生したとかで30 分ほど足止めくらった。カマショーには拒否られたけれど、学生寮に行けば誰かいるだろう。そう考えて昨夜はのこのこと埼玉に上陸したんですが、大宮で降りた後で気が付いた。コバヤシ達が4 年生だったのって、去年だったか。自分が埼玉を去ってから半年どころじゃない。1 年半が過ぎてるわけで。いやもうホントに忘れていたの。現実から目をそらしていたわけじゃ決してない。そりゃ当時は3 年だった彼らも、社会人1 年生になってるに決まってます。学生寮にいるわけないなぁ。という事でさようなら、さいたま。そして、こんばんは池袋。午後11 時から午前9 時まで漫画喫茶でしのいだ。そんで、
秋葉原で買い物をして帰路についた。
みどりの窓口に8 時53 分ごろ到着。そしたら新幹線はやてが「8 時55 分発」だって。駅員さんに「急げー」って叫ばれた。初体験。焦った。そして初めて、乗車精算とかいうのを経験。つうか、「乗車後、すみやかに車掌のもとで精算して下さい」とか書いてる紙を渡されたから、オロオロと車掌を探し回ったら乗ってないし。無賃乗車とかで捕まったらどうすんのよ。盛岡で車掌が乗ってくるまで気が気じゃなかった。
正午に宇都宮へ到着。で、用事の方は20 時くらいまでかかった。で、餃子を食うの忘れた。
急遽明日、宇都宮に行くことが決定。で、明後日は休日だから夜は埼玉に出向いて、カマショーと飲もうとか思ったわけ。
あ〜そう。とほほ。電話を切った後、なんだよつれねえなぁ。自分勝手に腹を立てたが、その怒りが沈めば別の考えが生じた。もしかして、未だに友達だと思っているのはこちらだけとか。そういや、対応がなんとなく冷たかったかも。あ〜もう、ダメだ。そうだ、15,000 円まだ返してないわ。うん、確実に非は此方にあったわけで。
金の貸し借りはきれいにしとかないと。ごめん。もう少し待って。
山形県鶴岡市まで行って帰ってきました。滞在時間3 時間で所用に費やした時間は1 時間。余った2 時間はラーメン屋で漫画読んでました。ちなみに移動時間は往復でおよそ10 時間。疲れた。
前回調子にのって、print "Status: 303 See Other\n";
とか記述してみたわけですが、NN 4.78 でページの移動ができないことがわかった。で、そこを削除したら、ページの移動は出来てるけれどブラウザのURL 欄にhttp://127.0.0.1/cgi-bin/location.cgi って表示されるようになった。始めから、print "Status: 302 Found\n";
にしておけば良かったと思う今日この頃。
#!/usr/local/bin/perl -wT
use strict;
#----------------------------------------------------------------------------#
# 基本設定
#----------------------------------------------------------------------------#
my %config = (
host => 'http://127.0.0.1/',
home => '/index.html',
);
#----------------------------------------------------------------------------#
# 処理
#----------------------------------------------------------------------------#
my $location;
if ($ENV{REQUEST_METHOD} eq "POST") {
read STDIN, my $query, $ENV{CONTENT_LENGTH};
my($name, $value) = split /=/, $query;
if ($name eq 'log') {
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$location = $value;
} else {
$location = $config{home};
}
} else {
$location = $config{home};
}
my $ref = $ENV{HTTP_REFERER};
if ($ref !~ /^$config{host}/ or $ref =~ /location.cgi/) {
$location = $config{home};
}
print "Status: 302 Found\n";
print "Location: $location\n\n";
で、まぁ動くようになったんですが当方では相対URL を使用しているので、Lynx 2.85 で動かすと、
ロケーション URL は絶対的なものではありません。
ってブラウザに注意されます。
曰く、9 月に入るとFOMA に切り替える際の割引が激減する。
曰く、今日ならセット割引も付けられる。
曰く、ブラックならさらに1,000 円値引く。
そんなわけで、友人の悲痛な叫びに心打たれた酔っ払いが1 人、ドコモショップへ足を運び、N900i を手に入れた次第です。つうか、俺はもうこの酔っ払いに愛想が尽きた。なんであんたは即答してんの。絶対馬鹿。携帯買って残高5,000 円。来週末は飲み会がある。二次会は諦めるとしても飲み代3,000 円は確保しておきたい。ッて事は、実質2,000 円で残り20 日間を過ごさねばならず。
野暮用で仙台に行って来ました。新幹線で2 時間かからず。で、今回は用事が午前中にあっさり済みそうだったので、午後は観光でもしようかな、と思ってたわけですが、雨降ってんの。小雨だったけど。もうね、観光なんて気分じゃないわけです。だいたい、用事の中身もボロボロだったし。
で、何しに来たのか、期待半分諦め半分で臨んだメロンブックス。やっぱり売ってないのよ『マツメタ』は。ネットで調べた。売り切れだった。でも、ひょっとしたら。淡い期待を込めたけど、立ちはだかる過酷な現実。サイトの掲示板にも書かれていたよ、再販予定は今のところ無いですね。再プレス予定も無いので
ってさ。それにしても、知るのが遅すぎた。いや、メロンブックスに寄ったのはあくまでも事のついでですよ。
で、今回の道連れは西風隆介著『竜の時間 神国』と篠田真由美著『失楽の街』の2 冊。
プルダウンメニューで選択したページに移動するCGI スクリプトを使ってみたいので、
#!/usr/local/bin/perl -wT
use strict;
#----------------------------------------------------------------------------#
# 基本設定
#----------------------------------------------------------------------------#
my %config = (
host => 'http://127.0.0.1/',
home => 'http://127.0.0.1/index.html',
);
#----------------------------------------------------------------------------#
# 処理
#----------------------------------------------------------------------------#
my $location;
if ($ENV{REQUEST_METHOD} eq "POST") {
read STDIN, my $query, $ENV{CONTENT_LENGTH};
my($name, $value) = split /=/, $query;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$location = $value;
} else {
$location = $config{home};
}
my $ref = $ENV{HTTP_REFERER};
if ($ref !~ /^$config{host}/ or $ref =~ /location.cgi/) {
$location = $config{home};
}
print "Status: 303 See Other\n";
print "Location: $location\n\n";
上記のような物を用意した次第です。で、例えば、
<form action="/cgi-bin/location.cgi" method="post">
<p>
<select name="log">
<option value="/log/04.html">4</option>
<option value="/log/03.html">3</option>
<option value="/log/02.html">2</option>
<option value="/log/01.html">1</option>
</select>
<input type="submit">
</p>
</form>
こんな感じのフォームから呼び出すとして、この場合、option タグのvalue の値が相対URL の完全パスなんですが、これがスクリプトに渡されて、print "Location: /log/01.html\n\n";
とかそんな感じになって目的のページに移動する、と。で、そうした場合、若干、問題がありまして、
CGI プログラムが自分でドキュメントを生成せずに、クライアントに別のドキュメントを参照する(リダイレクトする) よう指示すればよいだけという場合がある。このような場合は、HTTP ヘッダのLocation 行にリダイレクト先のURL を指定する必要がある。その際、必ず絶対URL を使用すること(相対URL ではダメ)。
オライリー・ジャパン『Perl クックブック』
相対URL は使うな、と。それなら、まぁ絶対URL を使えば良いだけなのですが、
ユーザを他のURL に転送するには、次のようにLocation ヘッダに転送先のURL を指定して出力します。
print "Location: static_response.html\n\n";
URL は、絶対パスでも相対パスでも構いません。絶対URL または相対パスによる相対URL はブラウザに返送され、そのURL へのリクエストが新たに生成されます。相対URL をフルパスで指定すると、内部的なリダイレクトが生成されます。内部リダイレクトは、ブラウザに返されることなくWeb サーバ内で処理されます。サーバは、新しいリクエストを受け取ったかのように新しいリソースを取得しますが、クライアントに新しいリソースの内容を返す際にはあたかもCGI スクリプトの出力であるかのように返します。これにより、ネットワーク上でのレスポンスやリクエストの発生を避けることができ、ユーザにとっては応答が速くなります。リダイレクトでは、ユーザのブラウザに表示されるURL は、元のCGI スクリプトのURL のままとなります。図3-4 に、サーバによるリダイレクトを図示します。
絶対URL にリダイレクトする際は、自動的に転送できない旧式のブラウザ用に、Content-type ヘッダとコンテンツボディを含めることができます。最新のブラウザは、このコンテンツを表示しないで即座に新しいURL を取得します。
オライリー・ジャパン『CGI プログラミング』
こちらの本ではどっちでもいい、と。相対URL の完全パスを使うとユーザにとって良いことがある、と。
以上のことから、分かった気になっていたのが、また何がなんだかわからん塩梅になってきました。正直に書くとね、print "Status: 303 See Other\n";
とかよく分かってないし。改めて見返せば、相対URL と絶対URL がごちゃ混ぜだし。統一すべきか分からないし。でもって、絶対URL を使うなら、旧式のブラウザ用にContent-type ヘッダとコンテンツボディを付け足すべきか否か、決めかねてるし。それに、select タグのname の値をチェックすべきか分からないし。
そこで、思い出したのが、
まぁ、そんなもんだよなぁ。
個人的に国語辞典は手放せない物の一つなのです。ペラペラめくってるとわりと面白かったりするのです。小説を読んでいて分からない単語に出会ったとき、重宝するのです。で、ひょっとしたら常識なのかもしれないけれど、
なんか今まで、示現流の剣士のかけ声だと思ってたけど、微妙に違ってた。興奮したときのかけ声、個人的に、これからは盛んに使っていこうと思う。ちなみに、大学のスポーツの授業の一つに、杖道ッてのがあったけど、その時のかけ声は「いぇい」だった。ダラダラやってると一気にぶち切れる先生だった。友人がすぐ辞めた剣道部の顧問。「単位を確実に取りたければ、試験を受けなさい」とかで、そういえば自分、杖道一級とか持ってた、ッて今更思い出した。まぁ、そんな昔の話はどうでも良くて、本題は【知恵】の項にあった【知恵熱】。漫画なんかで、勉強の出来ないキャラが勉強しすぎて、頭から湯気を出しつつ、「知恵熱が〜」な感じで使われる言葉。僕の中でのイメージですが。しかし、国語辞典には、
全く違った。
冷夏だった去年とは違い、今年の夏は非常に暑いので、コーラをがぶ飲みする日々が続いているのですが。
信用していいのでしょうか?
お祖父様の一周忌だかなんだかの法事があるらしい。親戚連中が集まるらしい。でも、未だに慣れないの、あの空気。つうか、僕が普通に話せる従兄弟は不参加だって。そんなわけで、バイトに行くフリして、漫画喫茶に逃げ込んだ。今日が僕の漫喫初体験。