「日記」に関する日記(8)

<前 次>

リセットさん

今日は爆ボンのバトルステージのことでも書いてみようかと思ったのですが7割方書いたところで突然パソコンが再起動されてしまい、文章が消失してしまいました。
再起動後書き直そうとしてエディタを開いたのですがやる気が減退してしまい、結局何もせず終わりました。

メモちらしを少し改良しました。
どことも繋がっていない粒子が動いてしまうとどこにも繋げないうちにどこかへ飛んでいってしまうことがあったので、どことも繋がっていない粒子は動かさないようにしたのです。
ただ、現在位置の座標を更新しないだけでかかっている力やそれから算出される速度の値は時々刻々変化しているので、どこかに繋げた瞬間内部的に持っていた速度でいきなり動き出すのが問題ではあります。
だったら速度の値を0にすればいいとも考えられるのですが、前回の速度の値と現在の力の値などが多少複雑に結びついていたりするのでそう簡単に変えられないのですよ。
このあたりをきっちり書き直せばアップできそうではあります。

昨日の日記で日記プログラムはCGIとPHPに分かれていることを書きましたが、実は今このCGIで動いている部分がCGIでなければならない理由は全くなく、むしろ一部のPHPとの動作の違いで同じはずのアドレスが別物にされたりしてうまくブラウザのキャッシュが使えず表示に必要以上の時間がかかるという不都合だけがあるのです。
そういえば日記の削除機能が未実装だったので公開前にはその点も改善しなきゃいけませんね。

マウスの調子が悪い

最近涼しくなってきましたね。
また冬が近付いてきたようです。

そういえば最近マウスの調子が悪いです。
クリックした瞬間とか手を離した瞬間にポイント位置がずれるのは買ったときからでしたが、最近はホイールを上向きに回した瞬間下に向かって勢いよくスクロールすることが多くなってきて困り者です。

そうそう、見ているユーザーには全然関係ありませんが日記の編集フォームを改良しました。
カテゴリ画面はどうしても場所をとるので他のフォームより横幅を広く取ってスクロールが少なくてもいいようにしたほか、ジャンル名の途中で行が折り返されたりすると非常に見つけづらくなるので、ジャンル名の途中では折り返さないようにしました。
そういえば昔日記プログラムを配布しようとしたことがあったのですがあまりに配布しにくい形式だったので断念したのでした。
書き込みはCGI、閲覧はPHPと分かれているのが問題なんですよ。
全部PHPで書き直したら配布できるようになるかな…。
ん、編集画面をJavaScriptでもっと改良できそうな気がしてきた!

過去ログ修正完了

うおーす。更新しましたー。
スクリプト作ろうコーナーの言語仕様更新ですよー。
…なんだかあまり厳密には決まってなさそうですが、細かい部分は作り始めてみないとわからないのである程度曖昧にしてあります。

そして今日は日記の過去ログを全て修正し終えました。
これに伴い未登録の日記へのリンクも削除しました。
…本当に、やっと終わりました。

それと、前々からh2とh3の小見出しが真ん中に来ると見難いと感じていたので、思い切ってスタイルシートを変更して左寄せにしてしまいました。

日常を書かなくなってきた

昔の日記を見ていて思うのですが、このごろあまり自分自身の日常について書かなくなりましたね。
パソコンのこととゲームのこと、最近はこればかりですね。
まあ、一時期日常について書きすぎていたところもあるのでこれはこれでいいのかもしれませんが。

蛭

Bomber丸Worldのページに、今では見るのも恥ずかしい過去の産物を掲載してきました。
あれですな。
作っている時点である意味恥さらしなんだから、もう思い切って全部出しちゃいました。

ふにゃさんの標準ステージ6・7面の攻略ページ作りました。
どちらもあまり見所のない紹介的なステージなんですけどね。

弟がまたバイオ0なんか買ってきてました。
いやもう、予想以上に蛭ですよ。
1がタイラント、2がG、4が寄生虫、コードベロニカが蟻、0は蛭ですよ。
ラスボスは蛭にモテモテの男が蛭化すると見た。

日記のメニューに「あのときのわし」を追加しました。
これは今までの日記の中から一日をランダムに選んで表示する機能です。
それと、今まで一日だけ表示する画面でしか表示してこなかった日記へのコメントも全ページで表示するようにしました。

謎の男

最近日記を書くだけ書いてアップするのを忘れがちです。
特に他のコンテンツの更新とかぶっていたりすると一緒にアップしただろうと思い込んで確認を怠ることがあるようです。

ミディビの投稿データを毎回別のファイル名にして保存するようにしました。
過去ログを残すとか、将来掲示板として稼動することを見越して、というよりブラウザのキャッシュ対策だったりします。

ドラクエ8ではラストダンジョンらしき場所に潜入。
なぜか図書館があったり、クレイジーな量のタルがおいてあったり、リレミトで脱出できずにルーラが使えたり、手入れが行き届いていなくてそこいらじゅうボロボロになっていたり、従来のラストダンジョンとは違った雰囲気がありました。

Bomber丸World、マップデータの方式が決まりません。
一つのマップに二つ以上のマップチップ素材があってもかまわない方式でないと困るんですよね。
だけどマップチップ一つ一つに対してどのファイルのどこのデータですというデータを書いていけば面倒なことこの上ないし、できれば番号で管理したいのです。
となれば別のファイルでどのファイルのどのデータかという情報に通し番号を付けてマップデータのほうではその番号に従ってマップを作ればよいのでは?
しかしそうなると番号のつけ方が問題に…。
それはそうと、今日の絵は謎の男仮バージョン。
輪郭に色つけると思ったよりよくなるね。

1138628860.gif

Continue?

日記で一部のカテゴリで勝手に\マークが増えて正しく検索されないことがあったバグを修正しました。
それと、見ればわかりますが検索機能も追加しました。
新カテゴリの人工無能はこれで探しました。

ふにゃさん、プレイ記録の保存とゲームオーバーからのコンティニュー時のペナルティができました。
データのロード&セーブ処理は例によって項目追加のときにロードかセーブのどちらかを忘れてしまいそうだったので設定項目の追加は一箇所で行うようにしてセーブとロードは一括処理するようにしています。
ついでにチェックサムも入れてあるので下手に変更するとデータが消えます。
そして今は項目選択機能を作成中。
つまりはいとかいいえとか、ゲームを続けるとかタイトルに戻るとか、そういうのです。
いやー。そろそろステージ作りも始めなければいけませんね。

普通のエンディング

のんびりナマライザのログ一覧表示を作りました。
LineConstructorを使いまわしています。
どうも少し重いようですが既存のコントロールを使ったときのような余計な制限やメモリ消費がないところが強みです。
コントロールを使うとコントロールにデータのコピーを置かなければならないのでメモリ消費とデータ反映にかかる時間が馬鹿にならないのですよ。
もっとも、スクロールにスクロールバーコントロールを使っているのでいまだに32767項目の制限があったりするのですがね。

日記を改良しました。
JavaScriptが有効になっている方は既にわかっていると思いますが、左側のリストがクリックで開いたり閉じたりできるようになっています。
Netscapeだとon~系のイベントが出ないようでクリックしても反応が無いのですがそのときはそのときで少なくとも前より悪いことはないと思うので勘弁してください。

爆ボンを改めて最初からプレイしてみました。
フルパワーなので楽勝楽勝!
と思いきやいきなりドラゴ戦で自爆!
あの過剰な爆発力に自分自身が餌食となってしまいました。
リッパーのときも同じく自爆しまくりだったのですがこちらはハートを何度でも回収できるので本当に楽勝でした。
しかし最大の難関!ブラックシティ!
正面突破は最短ルートでの突破に失敗し、かなりのタイムロス。
アルタイルタワーともなると、まさに難攻不落、フルパワーなんて全くの無力なのです。
あまりに全てが揃いすぎていて非現実的なパワーで侵攻しているというのにその結果があまりに現実的なタイム!
レインボーパレスがただのボムジャンプ練習場に見えてきます。
そしてクリアするとシアターでは見られないノーマルエンディング!
ものすごく久しぶりに見たのですがスタッフロールでのあの完璧なプレイと言ったら!
シリウス版のあの馬鹿なNGエンディングとは全く違う感動的なまでの完璧なスーパープレイ!
一瞬の無駄すらもありません!
最後のレインボーパレスへの布石はレインボーパレスとクリアしてから見るとまた違って感じるものがあります。
あの頃は単なる観光地だと思っていたなぁ。
クリアタイム16分です。
アルタイル1戦目の体力が分かったのでそこを更新です。

日記とチャット

日記CGIを機能制限して軽くしました。
まず、コメント&トラックバック機能除去。
コメントはいらないしリファラを見ればトラックバックも不要だし、そもそもブログじゃないので最初から不要な機能だったのです。
そして次に、管理者の私にしか日記は更新できないため公開サーバーに置く利点がないということで、ローカルサーバーでのみ動作するようにしました。
それに伴い、同じサーバーを共有する他のユーザーに気を使って重い処理を避ける必要がなくなったので、自分で使うのに便利なように多機能にしてみました。
まあ、分割していた処理を一括で実行するようにしただけなんですが。
こうして書いた日記をあとでFTPでアップするのです。
公開サーバー側では一切書き込み処理をしないのでミラーリングアップロードが使えます。

チャットもリロード処理を改良しています。
リロードをログ表示側の処理ではなく、投稿フォーム側でJavaScriptにより処理することで、そのときの気分次第で自由にリロード時間を変えられるようになります。
勝手にリロードされると困る場合はリロードなしにすればよいのです。
ちなみに、JavaScriptが無効化されている場合は自動リロードは行われません。

在室者管理

さてと、チャットの在室者管理でも作りますかね。
入室時:member.dat読み込み→入室者チェック→member.datにデータがなければmember.datに入室者を追加して入室メッセージを表示→member.datを更新
ログ表示時:m読み込み→長期ROMの人がいた場合自動退室させてm保存→在室者を表示
発言時:m読み→発言者がmになければエラー→最終発言時間を更新してm保存→ログ表示
退室時:m読→退室者いなければ何もせず→いたら削除&m保&退室メッセージ
てな具合でどうでしょ。

DirectMusicProducerで作ったデータを再生しようとして見事に挫折。
どう頑張っても全く音が鳴らないしエラーが出るんですよぉ。

今日は「Bomber丸World」の海音楽裏。
短調です。

日記カテゴリに「掲示板」と「チャット」追加しましたよ。

1124204328.mid

エイミーと更新と学習と

Bomber丸WorldのBGM、製鋼所ダンジョンボスのところを更新しました。
イントロ部分の追加とエイミーパートの一部変更です。

更新のカテゴリを増やしました。
更新履歴に乗せないような更新は日記に載せていきます。

学校のレポートがたまってきてます。
最近学校でやっていることがわからなくなってきているようなので勉強もかねてレポートでやった内容や自分で考えてみたことを自分で理解したように(≠他人にも理解できるように)書いてみて学習帳にでもアップしようかと思っています。
さて、レポートを早いとこ片付けないと。

ファイル構造解析のために

日記と掲示板のプログラムをちょっと改良しました。
いずれもメンテナンス部門の変更なのでユーザーが使える部分では変更ありません。

FFCCでは、ちょっと気まずい手紙を拾って受け取ってしまったためリセット。
結構アイテム手に入ってたんだけどな。

ByteEditでも改良してみようかと思ったのですが、どうも今日中には間に合いそうにないです。
ファイルとの比較を作れば解析が簡単になるかなぁと思ってたり。

質量

日記はブログじゃないのです。
ブログは有用な情報こそが命、つまらないことなら更新せずに記事ひとつあたりの内容の密度を高めることが重要でしょうよ。
でも日記は毎日つけることそれ自体が目的、内容云々より一日一回書く!
その上で不要と思われる情報はあとから消していけばよいのです。
「質と量」のブログに対して「質より量」のWeb日記なのです。
ということをHP作成論に書こうと思ったり思わなかったり。

重い思い

サーバーのOSはRedHatLinuxだ。
Linux系はマルチタスクOSであり、複数のユーザーが同時に利用する。
だから、あまり高負荷なCGIは設置できない。
私自身のためでも訪問者のためでもない、サーバーを共有するほかのユーザーのためだ。
しかし、時としてCGI上で重い処理を実行しなければならないときがある。
もちろん一番手っ取り早い解決方法は処理を軽くすることであるが、理論的にも現実的にも限界というものがある。
例えば、N個のデータに対して処理を行いたい場合は、どんな場合でも最低N回の処理が必要になる。
また、実行しないという方法もある。
つまり、データをローカル環境にダウンロードしてそこで処理をすればサーバーに負荷はかからないという計算だ。
しかしそれには時間も手間も余計にかかる。
そこで、原点に立ち返って考えてみる。
なぜ高負荷の処理をしてはいけないのか。
マルチタスクの動作原理からわかるとおり、実際の処理は1つのCPUがこなしており、単純計算すれば、2人が同時に処理を行えば処理速度はそれぞれ半分になるということだ。
低負荷の処理であれば処理は瞬時に終わるため、2人が同時に、ということは少なく、仮にあったとして処理速度が半分になる期間はごく短いということになる。
そしてもうひとつ考えてみる。
高負荷とは何なのか。
言うまでもなく負荷が高いことである。
負荷が高いとはどういうことを言うのか。
非常に多くの処理を行う場合であろう。
しかし、その非常に多くのそれぞれひとつは実は軽い処理なのである。
例えば、同じ処理でも、10倍の時間を掛けて処理すれば単位時間当たりの負荷は10分の1に減るだろう。
つまり、常にほんの少し重い状態をキープすれば一見重さを感じないのではないか。

ということで、日記の左側メニューを生成する処理を作りました。
ローカルテストではこの機能は一回約0.17秒かかるようで、実際に使うのは数日に一回程度だから多少重くても気にしない。
逆にチャットのようなものだと一回一回が軽くても呼び出し回数が馬鹿にならなかったりしますけどね。

コメントラック

ドラクエ7でサンダーラットとメタルスライムをいじめてました。
目的はサンダーラットの心。
今度はゴーレムーガをいぢめる旅に。

日記、結局コメントもトラックバック受信も対応させちゃいました。
どうもブログによってトラックバック送信の際の文字コードが違うようで、はてなからの場合はUnicodeでjcode.plが対応していなかったりして、もう開き直っちゃってどんな文字コードでもそのまんま入れちゃえばいいやということで、コメント&トラックバック専用のファイルを用意して受信内容をそのまま記録という方式に。
で、後日管理人が正しいエンコードで確認してShiftJISにして日記に反映させるという方式です。
実際のところ、この日記は積極的に人に見てもらいたいわけではなく、ひっそりとよく見えるように配置しておき、見たい人は見てもらいたいし興味があるのなら毎日でも見てほしいということなので、トラックバックもあまりしてほしくはないのだけれどもしてくれたらやっぱり嬉しいという相反する考えを持っている次第であります。
そうそう、こちからは他人のブログを話題にすることもありませんし、トラックバックも送りませんよ。

ピーッピーッピーッ、バックします

う~む、そもそもこの日記の書き込み部分は管理人一人が利用するということで、ロック処理というものをしていないのです。
だから、コメントやトラックバックを下手に実装すると、2人以上による書き込みで2年分以上の日記が吹っ飛ぶかもしれない…
起こる確率としては数千分の一くらいだけど、言い換えれば数千人に一人は明日ログが消えちゃう計算だし、やっぱり可能な限りの対策はしておいたほうが安心できるというものです。
一応、今の予定としては、どちらもいったん管理人が目を通してから日記に反映することにするので、ならばこれらのユーザーからのフィードバックは小さなファイルに書き込んでおいて、消えたら残念でした、消えなかったら確認の上掲載という形でどうだ!

「Bomber丸World」のBGM作ってました。
海洋研究所のボスの音楽はとにかく勢いばっかりの曲なので勢いだけでばーっと作っちゃえそうな気がしたのですが、思ったより難しくて失速気味。

ブログとただの日記帳の中間を目指しています

「ドラクエ5」やってました。
偽太后の正体を暴くためラーの鏡を取りにいく準備段階としてマリアを誘うため教会へ。
先頭は主人公ゼボット、最後尾はマリアちゃんといい仲のヘンリー。
そのままマリアに話しかける。何事もなく会話が終わる。
あ、ヘンリー先頭のほうが良かったかも。
と思い、パーティの並びを逆順にして、その辺にいる女と会話。
あれよあれよという間にマリアが仲間に。それも最後尾に。
ごめんよヘンリー…
そして冒険の書に記録して、カジノで摩って終了。

日記についてですが、掲示板にも書いたとおり、完全にブログらしいブログにするつもりはないのでトラックバック機能はつけない予定。
とはいっても試験的に受信するだけは受信する可能性も無きにしも非ずですが。
コメントについては、要するに別CGIで処理するようにすれば良いのですが、コメントの保存形式をどうするかが問題となってきます。
単純に<br>で区切るかな…
その前に日付の記録形式を早く正常に戻さないとなぁ…

一応はてなダイアリーも試してみました。
http://d.hatena.ne.jp/tokio6/
すぐやめるつもりですが。

新しい日記で御座います

で・・・できたのだ。
これが新しい日記なのだ。
最も閲覧数の多い最新ログはHTMLで高速表示、過去ログやジャンル別の日記はPHPで効率よく管理、そして書き込みにはCGIを利用するというとても素晴らしい日記システムなのだ・・・。
それでは、また明日。

再インストール完了

ブラウザを入れなおすためLunascapeのサイトに行ったらバージョン2があったのですが、プレビューリリースということで、今は導入しないほうがよさそうだし、だからといって旧バージョンをインストールしてもすぐにいらなくなりそうだったので、とりあえずしばらくはIEで我慢ということになりました。

1日に更新していたのですが、トップページの更新を忘れていました。

DirectX8.1SDKがなかったので仕方なく9SDKをインストール。
サンプル見てみたけど数は少ないし大して見た目変わんないのにピクセルシェーダなんか使ってコンマ数FPSまで重くなるし、利用者を舐めてんのかと言いたくなる内容。
実際に製品として組み込むときにはピクセルシェーダを使わない設定とか付けたりするんでしょうかね。
とりあえずこれで「パネルγ」をリビルドしてみたけど必要環境がDirectX9になってしまっていないか不安です。

CGI&PHPの動作確認環境も何とか復帰。
ついでに新日記もちょいと更新。

<前 次>