東方シリーズのアレンジ音楽CD です。
秋葉原遠征、無事ゲット。といっても、10 月初めに行ったときは品切れてて手ぶらで帰ったから二度手間だったんだけど。
ランダムってrandom ッて綴るんですよ。これまでrandam だと思っていた事をここに記し…、やっぱり馬鹿だなぁと思った今日この頃。
ランダムに画像を出力するって、別にJavaScript でやればいいんじゃないとか前々から思ってた。けど、JavaScript が無効だと意味ないし。やっぱりCGI を使うべきだなとか思って今日までそうしてきた。けど、鯖に余計な負担をかけるべきではないという想いも消えない。そんな馬鹿な酔いどれ(泥酔状態)がふと思いついて眠りについた。
<p><script type="text/javascript" src="random.js"></script></p>
<noscript>
<p><!--#exec cgi="random.cgi"--></p>
</noscript>
で、目が覚めてから気が付いた。コレって確かにJavaScript が無効でも画像は表示されるけど、どのみちCGI も実行されるじゃない。思いついたときは、これで万事解決とか本気で思ってたのよアホな事に。これだから酔っ払いは。
<link rel="contents" href="〜">
と<link rel="index" href="〜">
の違いがいまいちピンと来なかったので、意味を調べてみたのだけれどいまひとつピンと来ない。だからなんとなく使ってる。
当サイトで現在用いられるスタイルシート(デフォルト)の問題点をば。
上側がMozilla Firefox での見え方。こっちは特に問題なし。HOME、ABOUT、LOG、BOOKMARK が横一列に並んでます。下側がIE6 での見え方。問題はこっち。BOOKMARK が下段に回り込んでます。Firefox とのウィンドウサイズがだいたい同じでも、IE の場合、そのウィンドウのサイズによってこんな表示になったりします。ウィンドウの横幅を変える事でFireFox 同様に表示させる事は可能。ちなみにOpera はFireFox 同様に問題なし。前々から分かっていた事とはいえ、昨日行った漫画喫茶のパソコン(17 インチ液晶モニタ、IE6 ウィンドウ最大化)でズバッと上の図の様に見えたときはかなりションボリした。
うちのパソコン上で(ローカルな環境で)動作確認していて気が付いたんですが、落ちるんですOpera が。選択フォームからスタイルの変更をしているとアプリケーションエラーが出現。そして、Opera が強制終了。そのくせ、<a href="/cgi-bin/getstyle.cgi?css=default">Default</a>
ッて感じに呼び出す場合は、問題なし。わけがわからない。Opera のバグだと思わせて。つうか、元のソースを使って試してみた。他のブラウザは問題なし。Opera は落ちた。
それとOpera にはもう1 つ。スタイル変更前に読み込んだページはリロードしない限り変更後のスタイルが適用されないの。コレは仕様というヤツですよね、多分。ちなみにうちのOpera のバージョンは7.23 です。
Opera の「設定」項目の、「プライバシー」に「オートリダイレクトを有効にする」というのがあるわけですが、そこのチェックを外してしまうと全くの役立たずになってしまうので、コンテンツボディを含めることに。それと、select タグのname の値をチェックするのも止めました。
#!/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;
$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: 302 Found\n";
print "Location: $location\n";
print <<"_____HTML_____";
Content-type: text/html; charset=Shift_JIS
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>Location was changed...</title>
</head>
<body>
<p>別のロケーションにリダイレクトします。</p>
<ul>
<li><a href="$location">了承</a></li>
</ul>
</body>
</html>
_____HTML_____
以上。
前々回取り上げたCGI 研究室のランダムCG 出力スクリプトですが、srand;
の一行は必要なさそう。というのも、
Perl 5.004 よりも古いバージョンでは、
rand()
を用いるプログラムの先頭で一度だけsrand()
を呼び出す必要があります。srand()
を呼び出さない場合、プログラムはいつも同じ数字から始まって、同じ順序の乱数を生成してしまいます。杜甫々『CGI & Perl 究極のレシピ350』
我が家のPerl はバージョンが5.8.1 なので、srand;
の一行は削ってみた。
#!/usr/local/bin/perl -wT
# ランダムCG 出力スクリプト by sf こと古谷俊一
# http://www.mahoroba.ne.jp/~furutani/cgi/
use strict;
$|=1;
my @image = (
'avalon_b.jpg',
'avalon_b2.jpg'
);
my $num = int(rand(@image));
print "Content-Type: text/html\n\n";
print "<img src=\"/img/$image[$num]\" alt=\"『Fate/stay night』 アレンジアルバム 『アヴァロン』\" width=\"399\" height=\"58\">";
まぁこれで良いのか、よく分からないけれど、うちのパソコンでは思惑どおりに動いているのでいいか。
先日買った『AVALON』が気に入ったのでリンクを貼ろうと思ったわけです。そしたらリンク先で用意しているバナーが2 つあって、そのどちらも気に入ってしまった次第。とはいえ、一度に2 つバナーを使ってリンクするのは節操ない気がするの。そんなわけで、ランダムにバナーを出力する(img タグを出力する)スクリプトが必要になったというわけです。
『AVALON』は、『Fate/stay night』のアレンジ音楽CD です。
#!/usr/local/bin/perl -wT
# ランダムCG 出力スクリプト by sf こと古谷俊一
# http://www.mahoroba.ne.jp/~furutani/cgi/
use strict;
$|=1;
my @image = (
'avalon_b.jpg',
'avalon_b2.jpg'
);
srand;
my $num = int(rand(@image));
print "Content-Type: text/html\n\n";
print "<img src=\"/img/$image[$num]\" alt=\"Fate/stay night アレンジアルバム AVALON\" width=\"399\" height=\"58\">";
まぁ、当然、ほんの数行とはいえ、僕が何もないところから作り出せるはずもなく、
上記サイトから拝借しました。