2004年8月の日記

<2004年09月 2004年07月>

絡む蔦

Tscriptの登録された個人情報の取得処理を作りました。
個人情報とは言っても、もちろん実際の住所氏名を求めたりするわけではなく、メールアドレスや自分のサイトのURLなど、掲示板に一般的に書き込まれる程度の情報だけです。
独自の仕様として、メールアドレスは、公開するか否かを指定することができ、メールでの連絡はつけられるけどSPAMメールには見つからない(はず)ということが可能になります。
それともうひとつ、サイト名登録というのがあり、これはつまり、URLだけをでんと乗っけるだけだったり、[Home]ボタンだったりするのよりは見栄えがよいだろうという考えからです。
登録情報を変更すると、自分の全ての書き込みに対して影響があるため、ひとつの記事でのみ別のURLとか、メール欄にsageとかはできません。

デバッグモード

台風ですよ台風。
オリンピックが終わったと思ったら台風ですよ。
風がビュウビュウなってるので家でブルブル震えています。
オリンピックでも戦争は止まらず・・・・か。

そうそう、TscripBBSのログ表示部分ちょっとだけ作りましたよ。
ログの読み込みができていることを示すだけの悲しいほど簡易のものですが。
プログラミングに関しては、一週間前の自分は他人といわれますが、数ヶ月前の私は外人さんです。
ぷろぐらむ見テテモ何ヤッテルノカサッパリワカリマセーン!
デバッグモードというのは、出力結果にデバッグ用の文字を入れて、内部で実際にどんな動きを知るためのもので、それも実装しました。
また、あんまり関係ありませんが、未実装のスタイルを設定するとエラーメッセージが出るようにしました。

なるたけなるだけ

更新しました。
DirectMusicを。
一応鳴るには鳴りますが、鳴らす以外にはな~んにもできません。
1回だけ音楽を垂れ流して終わりです。
後日の更新のためにわざわざ不完全に。

HP作成論におまけを追加しました。
実にどうでもいいことが書かれています。

音楽編

DirectMusicのサンプルを作っていました。
プログラムそのものは簡単なのですが、やっぱり曲データですね。
Bomber丸のテーマでも鳴らしてみようかと思ったのですが、なんだか自分で聞いてて恥ずかしくなったんで、「ふにゃふにゃ」の音楽のボツ曲を2倍速にして鳴らすことにしました。

ダッシュラン

ドラクエ7のデータを集めてました。
素早さの種って相当手に入りにくそうです。
あと、カービィ64で、背後霊のように現れるダークな兄弟たちを撮影。

ガベージコレクタ

アクセスログ回収。
403エラーが増えてました。
わざとですけどね。

「RPG±0」で、DirectMusicを使えるところまで作りました。
そして、64個のサウンド+ミュージックのバッファも。
最初はObject型かVariant型の配列64個を作って両方に対応するつもりでしたが、型判別が面倒臭そうだし、自動メンバ表示が出てこないので、DirectSoundBufferとDirectMusicSegmentの両方を64個用意し、どちらを使うかを判別するための変数も64個。
どうせCreateしない限りは大してメモリを使わないんだし、変数が64個から192個になったってそう変わるものではないでしょう。
終了処理では、オブジェクトの実態の有無とは関係なしに片っ端からNothingにしています。
この辺ガベージコレクタが働いてくれてるのでCなどのようにNULLじゃなければ解放とかそんなまどろっこしいことはせずに済んで楽チンです。

掲示板のアイコン追加

昔に学校などで貰った、今になってはもういらないプリント類を整理していました。
高校時代の散々な成績のテストはシュレッダーにかけてポイ。
他のものも例外なく破いてポイ。
シュレッダーを分解掃除していたらばらばらになっちゃいました。
すぐ直したけど潤滑油が手についた。

「CharaBox」の画像別の表示を作りました。
Jpeg294個、GIF645個、なし331個でした。
ついでに、最終更新日別の表示に最終更新から1年以上2年未満のカテゴリーを追加しました。

「ふにゃさん」に登場するギヤバネを描いてみました。
敵か味方かと言われると、敵と言わざるを得ないのですが、行動がわかりやすく、扱いやすいので、うまく立ち回れば味方のように使うことも可能です。
ちなみに、バネは何かが近づかないと出てきません。

アクティブウィンドウ

「RPG±0」で、DirectMusic&Soundの処理を作ろうとしていたのですが、そのためにはデバッグのためウィンドウを切り替えたりすることが必要となってきたので、先にウィンドウ切り替え処理、つまり、DirectDrawのウィンドウモードでの使用(こちらはとっくの昔に実装済み)と非アクティブのときに他のウィンドウを支障なく操作できるようにするような処理を作りました。
「ふにゃふにゃ」の時には非アクティブの検出にはWindowsからメッセージを受け取ってそれで判別していましたが、VBではそんなこと(めんどくさくて)できないので、GetForegroundWindowがメインウィンドウのhWndでなかったら一致するまでずっとWhileでDoEventsだけの空ループを回すという仕様にしました。
空ループを回す前後に音楽や効果音などの中断処理を入れれば完璧なのですが、上と同じく面倒なのでそんなことはしません。
一応、サウンド処理自体もDirectSoundクラスを生成するところぐらいはできています。

ばね

「ふにゃさん」に登場する敵「ギヤバネ」を描いてました。
機械仕掛けのおもちゃっぽい敵で、外側にぎざぎざがついています。
触ってダメージを受けることはないけど、跳ね飛ばされることがあるのである意味ダメージを受ける場合よりも注意が必要です。

「カービィのきらきらきっず」で、9999点になったら、ギブアップされちゃいました。
あと、ラウンドクリア全クリア。

マスターテンポ

「真面目にDirectX」を書くのと「RPG±0」を作るためにDirectX7のマニュアルを見ていて、DirectMusicの基本的なところを読み返していたら、偶然C++のSetMaster~関連の記述を見つけました。
VBのSetMaster~関連の関数はC++用には見つからなかったのでVB特有の機能だと思っていたのですが、どうやらSetGlobalParamでGUIDを設定することにより可能なようです。
本当は「RPG±0」のほうと作る予定だったのですが、C++でのSetMasterTempoを試すため、「DirectMusicPlayer」のほうに変更を加えました。

携帯電話のことなんか知ったこっちゃない

日記をスタイルシートを使ってリニューアルしました。
いくつかタグとスタイルシートで矛盾が起きている部分があったり、HTMLlintで採点したら完全に間違っているといわれた場所があったのですが、質より量ということで、どっちも無視しました。
見えればそれでよし。
そんでもって、最新の日記から7月と8月の分を開発日記のほうに移行しました。
開発日記を書くきっかけとなったTscripBBSがやっと出てきました。
で、あんまり関係ないんですが、HTMLlintの携帯電話と特許出願用のHTMLに関する機能を取り除きました。

散髪に行ってきました。
例によってかなり短くしてもらいました。

家にただ一人

「ふにゃふにゃ」のページをリニューアルしました。
以前のはどう考えたって見た人が遊んでみたいと思えるようなページではなかったので。
内容のページに何故かこだわりが書かれていて、内容になっていなかったので、見て楽しそうだと思わせることをコンセプトに全面的に書き直しました。
特殊な操作性込みで説明したので随分と改善されたと思います。

ホームアローンは1が好きだけど3をもう一度見てみたい。
主人公が何回キスされたか映画館では数え切れなかったので。

色で伝えるメッセージ

日記の過去ログ10月分をアップしました。
あと、制作日記もいろいろと。
まずい、目的から考えたら新しいものから制作日記に写していくべきだったのに…
あれじゃはじめて見た人には一年以上も開発停滞しているように見えてしまう!!

PNGとかGIFってパレット部分は圧縮してないんですね。
ということはですよ、わざわざそれ専用のスペースをとって著作権情報のテキストを書くより、パレットのあまりがある部分に無理矢理テキストデータをぶち込めばファイルサイズを増やさずに付加情報を付けられるということになりそうではありませんか?
今まで無駄にしてきたパレットのあまり部分を有効活用できるのです!

えいちてぃあくせす

直リン排除研究アップしてみました。
結局mod_rewriteについてはわからず。
まあ2種類方法がありゃ充分でしょ。

今度の更新は、微妙に要望があったような雰囲気があるので「真面目にDirectX」にしてみます。
そこそこ要望があったような雰囲気の「Bomber丸World」は要望がどんなにあろうとこの先1年以上はかかるだろうし、「ふにゃふにゃ」のバージョンアップももうちょっとじっくりやっていきたいので。
「RPG±0」のBGM&サウンド部分を作りつつDirectMusic&Soundの解説でもしてみようかな~と思っています。
まあ要するに、VB編を。

あーうー

直リン排除研究作ってました。
.htaccessについては大方うまく行ってます。
画像のところで果てしなくやる気を失い終了。

エターナルダークネスエダーナルタークネスエーテルナースデスエスタークネス・・・
カミナリピカピカゴロゴロピカチュウライチュウデオキシス・・・
メタナイトバタモンバタナイトメタモン・・・

痛恨の一撃

.htaccessいじってました。
直リンクを突っぱねるためなんですが、こればかりはさすがに自宅サーバーでは確認のしようもないので、ぶっつけ本番ってことになっちゃいます。
現在は画像に直リンクすると別の画像に摩り替える方法を考えています。

ドラクエ5やってたら、ブラウニー軍団が痛恨の一撃を連発してきて、それもすべて主人公ゼボット(デフォルトネームはアベルだそうです)に命中、瞬時に全滅しました。
次の瞬間、プレイステーションのコントローラーも痛恨の一撃を受けたことは言うまでもありません。

なんか妙なファイルへのアクセスがあると思ったらウィルスのせいらしい。
それとは関係ないけど、サーバー使用料振り込んできました。

暴走注意

「ふにゃふにゃ」をやっていたら、右キャラを操作しているのに左キャラが動き出す現象に出会いました。
この現象は、左キャラの操作が方向キーとShiftキー、右キャラの操作がテンキーで行われていたのが原因だったようです。
テンキーの2468はShiftキーと共に使うと方向キーと同じ役割をするので、そのせいで右キャラに伝わるはずのキーイベントが左キャラのほうに伝わり、左キャラが暴走したのです。
次回バージョンアップ時にヘルプに記載しておきます。

直リン排除研究JavaScript編ができました。
HTMLファイルにしか適用できませんが、たった5行(タグ・コメント行込みで7行)、実際の内容は3行、場合によっては2行で終わりです。
意外と簡単ですね。

だめだめ

今日サーバー使用量を銀行で振り込もうと思っていたのですが、窓口は閉まってたしATMでは現金が使えなくて、振り込めませんでした。
振り込み期日までにはまだまだ10日以上もあるので適当にいけそうな日を見て振り込みなおしに行きます。

「DirectMusicPlayer」を作ろうとしてみたのですが、DirectXわからんMFCわからんで結局何もできませんでした。
ヘルプ見たらわかるかなと思ったんですが、ちんぷんかんぷん。
DirectX8だったらできるかもしれないと思うところがあるので、また調べてみます。

ダメージを受けたときのリアクションについて

「ふにゃふにゃ」のダメージを受けたときの跳ねる方向を変える処理を作っていました。
とりあえずキー入力があれば一律で20ずつスピードを変えるようにしてみましたが、今後地上と空中、そしてダメージエリアで挙動を変えるようにするかもしれません。
ダメージエリアの場合、基本的には動かないし消えないので、移動量をもっと多くすべきかと考えています。

飛翔系マシン

なんだかプレイステーション2が起動しにくくなっていました。
最近になってやっとよく使うようになったというのにこれじゃあただの置物になりかねない!
壊れる前にせめてドラクエ5くらいはクリアさせろ。

久しぶりにゲームキューブの時計を見てみたら40分くらいずれてました。
時々コンセント抜いたりしていたのでその影響だと思います。

「カービィのエアライド」やってました。
エアライドのクリアチェッカーをいくつかゲームのページに書いてみました。
そんでもって、シティトライアルでエアグライダー(飛行距離を競う)をやっていたとき、デビルスターを乗り回して街でアイテム回収をしていると、突然コンテナの中身がヒコウパネルばっかりになり、合計18個回収し飛行能力大幅アップ。
不死鳥のように宙を舞うドラグーンも真っ青の、瘴気をまとい空を切るデビルスターが出来上がりました。
で、実際の記録は距離791.16m、その後ドラグーンを実際に飛ばしてみると1300m以上、負けました。
そんでもって、シティトライアルでハイジャンプ(飛行高度を競う)をやっていたとき、ウィングスターを乗り回して街でアイテム回収をしていると、妙にヒコウパネルが多く出るようになり、合計18個回収し飛行能力大幅アップ。
不死鳥のように宙を舞うドラグーンも真っ青の、爽やかな羽で空を貫くウィングスターが出来上がりました。
で、実際の記録は高度3247m、対するドラグーンの記録は2700mそこそこ、勝ちました!
本当はデビルスターとウィングスターが逆ならこの言葉がもっとあっていたのですが、こればかりはそのときの運次第なのでどうにもなりませんね。

やっと

昨日アップしたのは6月分でした。
そういうわけで、今日は7月から9月までのログを一気に移行しました。
しかしまあ、あのころの日記を見ていると、受験で時間がなかったにもかかわらず時間が有り余っている今よりも充実していたように見えます。
日記の過去ログを各コーナーに移動し始めたのには別の理由があったからなのですが、もはやそんなことは関係なくなってきています。

そろそろうちのWebスペースのレンタルの契約更新期間です。
手続きしないと。

野球の日

ハードディスクのデータのバックアップを取りました。
数日前のものですけど、DVD-RWに。
多分このバックアップが役に立つ日はないと思うけど、思いたいけど、やっぱりそう思ってるときに限って必要になってくるようなものなのだから一応しておく必要はあるというものです。

「ふにゃ」の追加ステージ2を作っていました。
1面は、本当に何のテクニックもいらない、バナナを取るだけのステージ。
2面は、一度やってみたかった最小サイズのステージ。
3面は、ジャンプの高さ調整がテーマのステージ。
4面は、急に難度を上げてジャンプの応用ステージ。
5面は、ひたすら長く嫌がらせのような罠だらけのステージ。
氷のステージよりは難しく、追加ステージ1よりはまともな線で行こうと思います。

7月分の開発日記を移行しました。
おもに「ふにゃふにゃ」です。

そうそう、今日ドラクエ7でカジノのスロットをやっていたら、いきなりホンダラ(周りの評判は悪いけど主人公に対してはいろいろ役に立ってくれるおじさん)が現れてゴールデンスライム(揃うと掛け金x100&回数+10)で止めてくれて、その後のボーナスゲームをやっているといきなり見ず知らずの剣士が現れて、ハズレで止まったスロットをドラゴスライム(揃うと掛け金x5)まで回してくれて、結局100,000コイン以上たまってしまいました。

過去ログ

日記の過去ログのうち、プログラムの開発関係の部分をダウンロードのページに写し始めました。
本当はTscripBBSを作ろうと思っていたのですが、記号の意味を忘れてしまい、過去の日記を見て調べようと思ったのですが、なかなか見つからず、また、以前からやろうとも思っていたので、これを機に開発日記を作り始めたのです。
とりあえず最初の2か月分、2002年の5月と6月の分を移行しました。
「ふにゃふにゃ」、「ふわふわふにゃ」、「パネルα」、「MusicPlayer4」、「MusicPlayer5」、「Bomber丸World」、がでています。
今更言うのもなんですけど、日記の過去ログから関係する部分を抜粋してきただけなんで、抜け漏れがあったり、現在と文体が違っていたり、前後の文脈がない関係で少し意味不明だったり、明らかにいい加減にしか語られていなかったりしますが、まあ気にしないでください。

やな日

腹痛い 頭も痛い 眼も痛い
    気分悪くて 今日は寝ていた

^$

アクセスログを回収してきました。
どうやら7月には全部のファイルを根こそぎ持っていった、恐らくはロボットがいました。
そこで、等差数列へのリンクが間違っていることを発見。
早速直しました。

予想はしていたけど結局3000番は踏み逃げでしたね。
カウンターにリンクが張ってあったらカウンターのレンタル元に繋がっていることがほとんどだということにも関係しているのかも。
カウンター周りはまた改良しようかと思っているんですよ。

直リン排除研究を書き始めました。
どうも「^$」がキーになっている模様。
JavaScript使ったらもうちょっと簡単だけどHTMLファイルじゃないとダメみたい。

やごの日

ドラクエ5やってました。
ダメージはあんまり受けないけどマホトラやら不思議な踊りのせいで見る見るうちにMPが失われていきます。
砂浜で敵と戦うとトロピカルな雰囲気になります。
トンネラーは土偶戦士を呼びまくって経験値の源泉になっています。
笑い袋×2+ホイミスライム×3+死神兵×1の組み合わせだとメダパニ+仲間呼び+ホイミ+毒でかなり苦戦させられます。
毒はともかくやっぱりメダパニ最強。

「RPG±0」で、イベント画面に表示されるイベントをわかりやすくしました。
「コマンド名 パラメータ1 パラメータ2 …」という表示を、わかりやすい日本語表記にしたのです。
「会話 しんいち バーロー。」だと、「しんいち『バーロー。』」てな感じでセリフっぽくなります。

日記の9月分のログをアップしました。
よく見るとスタイルシートを使っていたりタイトルが変更になっていたりします。

椰子の日

旧HPMを可能な限り縮小しました。
502バイトまで小さくしましたけど、見に行かないでください。
見ている人がいるとファイル削除できませんので。
ちなみに、トップページ以外にはもう用はないので完全に削除しました。

「ByteEdit」をバージョンアップしました。
クリップボードもどきを加えてみました。
結局クリップボードは実装できませんでした。
DDEを使ったデータ共有もできませんでした。
なぜなら、面倒だったからです。
そこで、ローカルなクリップボードを使いました。
それは一つのプログラム内でのみ通用するものです。
今回はこれで妥協しました。
そこで、もうひとつ問題を発見しました。
それは、データサイズに関する問題です。
問題の原因はスクロールバーにありました。
スクロールバーのプロパティには32767までしか指定できないものがあります。
それはMaxプロパティです。
その値は計算式で表されます。
計算式は、「データサイズ÷一行の桁数」の整数部分です。
よって、エラーが起こります。
エラーが起きるのは「データサイズ÷一行の桁数」が大きくなったときです。
そのときの値は32768以上です。
エラーを起こさないためには必要なことがあります。
それは、計算式の値を32768以上にしないことです。
つまり、データサイズを「一行の桁数×32768」未満にすることです。
言い換えれば、上限が定まります。
それは、データサイズの上限です。

「ふにゃふにゃ」の改良案を更新予定に追加しました。
昔から考えていたことなのですが、今日思い出したので書いてみました。

曇り空と夕焼け。少し異様に感じた

父が新しいデジカメを買ってきていました。
どうも以前に注文したものが今日入荷されたらしく、電話がかかってきて、取りに行っていました。
既に24枚撮影した模様。

「マザー」をやっていて、とりあえずレベルアップは置いといてストーリー進行を急ごうとしたのですが、ダンカン工場であっさりミサイルを見つけるも帰り道がわからなくなり、ウロウロしながら結局全部の部屋を回り、そこそこレベルアップができ、電車も無事開通され、砂漠に到着したのですが、敵がPKフリーズγで危機的状態にしたりSMAAAAASH!して100以上のダメージを与えたり大爆発したりして、撤退を余儀なくされ、訪れた病院で風邪を移されて治療費を余計に取られたりして、そろそろ面倒になってきてセーブしてやめました。

「ByteEdit」のコピー&ペースト処理を作っていて、エラーが起こる原因は使用している変数がローカル変数であり瞬時に消えてしまうのが原因かと思い、モジュールレベルにして変数が生きてる時間を増やしたところ、コピー・ペーストともに正しく行われるようになりましたが、相変わらずVBからコピーしたものはぐちゃぐちゃになり、しかもしばらく使っていると他のプログラムでコピーを実行した瞬間に固まってしまったりとか、忘れたころにいきなりエラーが出たりとかして、全く安定していないので、そもそもクリップボードを使う必然性があるのかといわれると、たとえ使うにしてもクリップボードの形式にバイナリ形式がない以上、オリジナルの形式によって使わねばならず、そうなれば他のソフトとクリップボードの内容を共有できるメリットなんて皆無なわけですから、いっそのことこれまで調べてきた全てを捨ててDDEによって似たような機能を「ByteEdit」内だけで構築し、複数の「ByteEdit」のどれかがクリップボード代わりになってもらって、それが終了されたら最初に見つけた仲間にクリップボードの内容を託して、全部終了されたらクリップボードはなくなる、っていうのも悪くないかもしれません。

「Another HTML-lint Gateway」を入れてみました。
あれって文字コードJISだったんですね。
改行コードがLFだったのでエラー起こしてました。

ハニー

テスト終わりました。
とりあえず知ってることは書いたんでもうあとはなるようになります。
帰ってからは少しの間気分が悪くなっていました。
明日から2ヶ月間休みです。

灰の日

リンク集の編集をできるようにCGIを改良したりテストしたり何やらしていました。
リンク先の編集となると、編集項目の中にあるタグは一体どうすればいいのかというのを考えねばならず、例えば、「&lt;」はそのまま「&lt;」と解釈されるのか「<」と解釈されるのか、まあ実はこれは前者のほうでして、例えば<input type=text name=~ value="~">内に書くタグ可の項目に「" style="filter:Xray();」などと書くと編集フォームではコメントが表示されず入力フォームが面白いことになってしまい、それを回避するためにタグ可の項目ではタグを無効化し、タグ無効のものについてはそのまんまという少しややこしくもない仕様になっておりまして、一応そのテストのためにいろいろよく分からないものをリンクにいれたりいれなかったりしたとかしてなかったとかで、結局実際に変わったのはとほほだけということで、改良が完了しました。

ドラクエ7で、ダンビラムーチョ心(転職アイテム)を手に入れました。
これが敵を倒してしか手に入らない最後の心だったので、「ダンビラムーチョの心」ではなく「ダンビラムーチョ心」という表記にしたところに何か特別な意味があるのではないかと憶測してみたりもしてみたわけですが、よく考えなくても速い人だとグラコス倒す前にとっくに手に入れてたりするのでそれはないかと思いつつ、メルビンは呪いのランプに、マリベルはパラディンに転職して、とりあえず煉獄火炎吐けないのはガボとアイラだけらしいということです。

もしかして「バナー」を「バーナー」って呼んでる人って「banner」と「barner」を見間違えたのかな?
などと英和辞典を片手に考えつつ、明日テストがあることを思い出し、今更教科書を探し始めるのでした。

<2004年09月 2004年07月>