− 「いつも通り」 −

2004年 どこまで行っても未来〜
 8月  7月  6月  5月  4月  3月  2月  1月
2003年
 12月  11月  10月  9月  8月  7月  6月  5月  4月  3月  2月  1月
2002年
 12月  11月  10月  9月  8月  7月  6月  5月  4月  3月  2月  1月
2001年
 12月  11月  10月  9月  8月  7月  6月  5月  4月  3月  2月  1月
2000年
 12月  11月  10月  9月  8月  7月  6月  5月  4月  3月  2月  1月
1999年
 12月  11月  10月  9月  8月

◆ TOP INDEX へもどる



■  7月19日 (月)

◆ 「真珠じゃないのよ」

 最近、 Perl で小さな CGI を組んでいたりする。
 ちょいと昔はよく「 Awk 」でテキスト処理をしていたりしたものだから、「 Perl 」なんぞはチョチョイのチョイ……… と、思っていたのだが、甘かったのである。  改めて勉強し直している。
 そんな訳で、メモがわりにつらつらと書き連ねてみる。

 今回、色々なデータ処理を行うにあたって、 Perl に構造体が無いことに頭を抱えたのだが、ハッシュで似たような書き方は出来ることが判明。
 ハッシュ(連想配列)は、


	%param = ( 'name'=>'' , 'HP'=>0 , 'str'=>0 , 'dex'=>0 );
	$param{'name'} = 'まじま';
	$param{'HP'} = 1;		# お疲れ中

 などと書けるが、これはいわゆる配列 @param の添字 [0] [1] ... を「 name 」「 HP 」などの文字に替えたものである。

 ここで、「構造体の配列」が欲しくなる。
 「 Perl の参考書」などを参考に、構造体と同じように定義すると、


	%param = ( 'name'=>'' , 'HP'=>0 , 'str'=>0 , 'dex'=>0 );
	@data = ();
for ( $i=0 ; $i<=7 ; $i++ ) { $data[$i] = %\param; } $data->[0]{'name'} = 'まじま'; # 全部「まじま」になっちゃう

 てな具合に書けるのだが、これでは $data[0] 〜 $data[7] 全部の {'name'} パラメータが「まじま」になってしまうのである。
 '%&' で、 param のアドレスを渡してしまっているので、あたりまえではある。( param は定義型ではなくて変数(配列)なのだ)

 ちょと考えて、とりあえず、


	@data = ();
	for ( $i=0 ; $i<=7 ; $i++ ){
	push $data[$i] , ( 'name'=>'' , 'HP'=>0 , 'str'=>0 , 'dex'=>0 );
	}

	$data->[0]{'name'} = 'まじま';
	$data->[1]{'name'} = 'MAJIM';	# これで別の名を名乗れる

 として、配列 $data にハッシュを押し込めば、とりあえず動くことが解ったのである。 (大カッコと中カッコの違いに注意)
 だが、


	# いきなりパラメータをぶちこむ
	@data = ();
		$data->[0]{'name'} = 'まじま';
		$data->[0]{'HP'} = 1;
		$data->[0]{'str'} = 3;
		$data->[0]{'dex'} = 2;

 などと、いきなり配列の構造体らしきものを作っても Perl は勝手に変数を確保してくれるのである。
 うむむ。 曖昧だが、非常にありがたい。
 (ファイルに出力するときは結局、1つづつ出力せねばならぬのだが)
 私は勝手に「構造体モドキ」と呼んでいる。


◆ 「小鯖」

 以前にも日記に書いたような気がしないでもないが、 CGI を作っている環境を、ちと紹介。

 ◆ JPerl
  http://homepage2.nifty.com/kipp/perl/jperl/index.html
 ◆ AN-HTTPD
  http://www.st.rim.or.jp/~nakata/

 ウチのシステムに上記の「 JPerl 」(日本語 Perl )を入れ、「 AN-HTTPD 」を走らせて、ミニ・サーバを作っている。 (しかるべき設定をして IP を公開すれば、もちろん何処からでもアクセスできる)

 知人に公開して、自分のマシンにアクセスされると妙に面白かったりする。


◆ 「ひとつだけ」

 先日、 Perl でプログラムを組んでいて、どーーーーーしてもバグが落とせなかった。
 入力した文字列とファイル内の文字列を認識するごく簡単なルーチンだったのだが、これがまったく認識をせず。

 色々と試してみて3時間。 ふと気が付くと、「 $array[$i] 」を「 $array[i] 」と書いていたのである………。 ( Perl は変数に「 $ 」を付けます)

 ……いや、確かに俺が悪いのだが、Perl 。
 お前も変数が無いのに走るんじゃない。




■  7月12日 (月)

◆ 「『 CD-ROM を入れて下さい』」

 かの現代戦ゲーム「 Operation Flashpoint 」
 新パッチ Version 1.96 を当てると起動時にチェック用 CD-ROM を入れずにすむよーになるそうである。
 早速トライ。

 まずは、パッチをスッタカスッタカとダウンロード。 解凍して実行。
 「ファイルが壊れています。 ゲームを再インストールして下さい」?
 ……先日、マシンがハングった時に壊れたのであろうか。

 仕方がないので、「 OFP 」をアンインストールしてから再インストール。 念のために、ゲーム用ドライブにデフラグもかけておく。
 再インストール後、再度パッチ用ファイルを実行。
 「ファイルが壊れています。 ゲームを再インストールして下さい」
 ……………。
 ええい、パッチファイルが壊れてるんでないのか。

 ちと OFP 関連の情報サイトを除いて、パッチについて調べてみる。
 えー、なになに。 パッチを当てるには……
 「(注: Game of the Year エディションは、専用のパッチが必要です)」
 へい、ウチは見事に「 G.O.T.Y. 」でやす。 拡張パック「 RED HAMMER 」と「 RESISTANCE 」全部入って安かったもんで。

 「 OFP G.O.T.Y. 」用のパッチをメーカーのサイトよりダウンロード。
  Ver.1.96 のみで大丈夫だとは思うが、一応、 1.91 → 1.96 の順番にパッチを当ててみる。
   ◆ OFP G.O.T.Y. ver.1.91 パッチ
   ◆ OFP G.O.T.Y. ver.1.96 パッチ

 おお、 アッサリと成功。 起動させるときに CD-ROM がいらぬ。
 これで、思ったときにサクサクとプレイできるのである。

 では、キャンペーン・プレイ途中の「 COLD WAR CRISIS 」の方を……。
  「 CD-ROM を入れて下さい」 ?
 ……うむむ、バージョンが上がったのは「レジスタンス」だけであったか。
 まあ、当たり前と言えば当たり前である。
 気を取り直して、「 COLD WAR CRISIS 」のキャンペーンを再開……

 とわたはあああっ!
 アンインストールしたときに、セーブ・ファイル消してしもうた……。
 しおしおのぱぁ。


◆ 「冷戦の岐路で」

 記録ファイルを消してしまったので、
  また最初から「 COLD WAR CRISIS 」キャンペーンのプレイである。
 えんげーじ。

 仕方ないけど、また新兵。 は、訓練。 へいへい。
 障害物競走の次は M-16 で射撃訓練? 何だ、マトはただの板きれですか。
 ……冗談ですってば、教官。 ホイ、ホイ、ホイと、手慣れたモンでしょう。 初めてじゃないもんで。

 は? いきなり実戦。 ウチの軍、人手不足なんで?
 はあ、頭のネジがゆるんだソビエト軍が、近くの島に侵攻しちゃったと。 へいへい、行きましょ。
 隊長さん、横一列は危なくねーですかい。 なに、だまって俺に付いてこい? 植木等みたいな隊長だね。 ま、お願いしますよ。
 「敵だ!」 ほーら、見つかっちゃった。 ……って、え? こっちが見つけたの? 先手必勝、撃っちゃうよ、撃っちゃいますよ?
 あー、何だか簡単に片づいちゃいましたねー、隊長。 ………何ですかこの小さな町工場みたいな音。 ごろごろきゅらきゅら、って。
 戦車だよ、おい! あー、もう逃げるよ、俺は。 ヘタに反撃したら見つかってミンチにされっちまうってなもんだ。
 ………あー、怖かった。 目の前に戦車見て助かるたぁ、運のいい。 あ、隊長がいない。

 ああ、ナンバー2が急遽隊長。 俺じゃないの。 は? 二等兵は黙ってろ? ごもっとも。
 おっと、新隊長が呼んでるよ。 へーいへい、何ですか新隊長。 はい、「新」隊長はやめろと。 へいへい。
 で、何のご用で。 トラックを、運転して、キャンプに持ってこい、と。 あー、あっしは大型免許持ってないんですが。 「硬いこと言うな、臨機応変だ」? はぁ、まあいいんですけどね。 一応、一般道も走るんですけど。
 おっと、このトラックだね。 乗って、と。 んじゃ、隊長〜、ジープでキャンプまで先導お願いしやす。
 あー、ほいほいっと。 以外と簡単なモンだね。
 あっ! ………隊長〜、急に止まらないでくださいよ。 あ〜あ、ジープにカマ掘っちゃった。 大丈夫ですか〜?
 お、走ったよ。 米軍のクルマってのは丈夫だねえ。 ちょっとヒビ入ったけど。

 ほい、キャンプに到着、と。
 はあ、今度はジープに乗れ? これから偵察に行くから付いてこい?
 あっしゃぁ、使いっ走りですかい。 へいへい、わかりやしたよ。
 え? ひーふーみー…、あっしを入れて3人ですかい。 不安だね〜。 はい、大勢で行ったら偵察にならん? ごもっともで。
 ところで隊長。   運転ヘタですね。
 ………すいやせんすいやせん。 あたた、殴るこたぁないのに。

 へい、この森ですか。 「付いてこい!」 合点!
 あー、森が朝陽に映えてキレイですねえ。 おっと、前方に未確認の人物を発見?! あらよっと。
 え? 撃つのが早い? マズかったっすか。  あ、こりゃ、ソビエト軍の先遣隊ですぜ。 いやー、そんな気がしたもんで。 そいじゃ、とっとと戻りますか。
 ……はあ。 森の中にひそんでいるつもりらしい、スナイパーが見えるよ。 いいんですかー、丸見えですよー、って教えるのもアレだね。
 あらら、隊長狙ってるよ、アイツ。 あらよっと。
 お〜い、隊長〜、アンタ狙ってたヤツを……、 気の早い人だね、もう駆けって行っちまった。  はいはい、戻りますよ。

 やれやれ、これで一休み。 あ〜、くつろぐ。

 ……あれ、何か無線が入ってきたよ。 あらら、少尉さんが攻撃受けてると。
 助けにいく? 合点承知!!  お、M113に乗れと。 それじゃ、あっしは銃座に………ダメ? けち。

 さ〜、到着。 まだ、少尉を襲った連中がいるかもな〜。 くわばらくわばら。
 あ! 少尉のジープが。 ……あ〜あ、ボロボロ。 南無。
 あたッ! どっかからか撃ってきたよ。 いてて。
 た〜!隊長!隊長! 9時方向に人影〜! ……前の茂みにいるヤツ相手にしてて聞いてないよ。 しょうがないね、ほら、そこの! あっしを援護しな!
 ほいほい、あらよっと。あ〜、仕留めたよ〜。 ……って、援護してくれたあなた、上官? そりゃ、すんません。

 ……あらーっ! 今度はM113が吹き飛んだよ!
 これじゃ歩いて帰らなきゃ…… 「そんな問題じゃない、アホ」? そりゃそうですな。
 しつこい奴らだね〜、まだ森に潜んでやがるよ。 ロケット弾係〜、…え?弾切れ? そんじゃ、あっしの M-16 をバースト・モードでバラまいて、と。
 ……あらららら、アッというまに弾倉スッカラカン。 しかたないね、このホトケさんの持ってる AK-47 をいただいて、と。
 お、こりゃ具合いいね。 隊長〜。 米軍にも AK-47 導入しましょうよ〜。 ……はあ、そんなに怒ることないのに。
 ほいほいっと、森に潜んでいたヤツぁもういませんぜ〜! はい?早くトラックに乗れって? やだね、みんなもう先にトンズラしてたのかい。 はいはいはい、置いていかないでくださいなっと。

 はあ、やれやれ間に合った。
 「冷戦」だけに、誰も助けてくれいゃせん。

 おあとがよろしいようで。


◆ 「ごっそり」

 ちょいと前にプリンター Pixus 860i を入手したので、家庭内 LAN でプリンターの共有化をはかる。
 「ネットワーク・コンピュータ」からプリンタをつないであるPCの「プリンタ」をクリック、プリンタ・ドライバーを入れればOKである。

 ……あー、認識しているはずだが、認識していない。
 ちと Windows ヘルプを参照すると、「 OS が異なる場合、その OS 用のプリンタ・ドライバーを追加しなくてはならない」とのこと。
 のほほ。 Windows-XP と Windows98SE をつないでおりましたわ。
 Win-XP マシンに Win98 用プリンタ・ドライバーを追加すると、めでたく認識いたしました。

 ああ、新しいプリンターは、楽でキレイ…。

 と、ゆーわけで、先日翻訳した「外宇宙からの恐るべき緑のもの ( The Awful Green Things from outer space ) 」のルールブックを、一太郎さんで清書してから印刷したら、全部で28枚。
 ごっそり。
 コンパクトなこのゲームの箱に入らないのであった。 とほほ。




◆ TOP INDEX へもどる