「PHP」に関する日記(10)

<前

リセットさん

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

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

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

使いそうなクラス

はい。トップがPHPになっているのにお気づきでしょうか。
そんなもん知ったこっちゃありませんね。
以前はSSIからカウンタCGIを呼び出していたのでPerlとCGIの2つのファイルの呼び出しがあったのですが、PHPにしてひとつのファイルにまとめたためかなり軽くなっているはずです。

ミディビ、更新しました。
プログラムには触れてませんけど、手がかりにはなるはずです。
やっぱ2ヶ月もあいてるんでそろそろ更新しとかないとなーということで。

新しい日記で御座います

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

再インストール完了

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

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

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

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

使い分け

全員に全く同じ内容のページを見せる場合で、特に更新よりも閲覧が圧倒的に多い場合はHTML。
それぞれに違うページを見せる場合、更新が多く閲覧が少ない場合で、ファイルへの書き込みを伴わない場合、あるいはデータベースを利用する場合はPHP。
ファイルへの書き込みを伴う場合はCGI。
で、どうだろう。
ファイル内容はCGIとPHPで共有できるし、CGIで生成したページをHTMLファイルとして記録し、閲覧の際はそれを見せるようにすれば負荷は減らせる。
だからといって何でもかんでもHTMLを作るようにしていたら見られもしないのにHTMLファイルばかりが増えるということも。
新日記の左側メニューは基本的に月一の更新であり、かつ最新の日記とほぼ同じ回数呼ばれることになるのでHTML。
右側の日記は、よく見る人は基本的に最新のものしか見ないので最新の日記のみHTML、他はPHPで、書き込み部分のみCGI。
掲示板はランダムメッセージを表示したりクッキーを使ったりするのでCGIかPHP。
リンク集はトップのHTMLページだけで大体用事が事足りている様子なので現状維持。
TScriptはCGIとPHPを組み合わせるつもり。
カウンターはファイルへの書き込みがあるけどPHPにするメリットのほうが大きそうなのでPHP。

ニ短調ト短調

決して多いわけではないんですけどサーバーのCPU使用率が上がってきてCGIの使い方とか見直したほうがいいかと思い、ちょっと考えてみました。
HTML-CPUパワーを基本的に使わない。更新が少なく全員同じ内容を見るページに適する。
CGI--最も重いがSuExecを導入しているのでファイル書き込み等はこれを使いたいところ。
PHP--データベースとの連携が強い。CGIよりは軽い。
というわけで、これを基準にいろいろ書き換えていくつもりです。

「ふにゃふにゃ」のBGMを調べてみたら、DmとGmの合わせ技だった。
本当は長調の曲のはずなんだけど、つくりが甘かったためかよく分からないうちに短調の曲に。
どっちかというとデータ上短調扱いしたほうがわかりやすかったということだけれども。
で、そう仮定するといくらか矛盾のある部分が出てきたので、いろいろ改良中。
一年以上もこれを放置してきたわけですが…

新日記作成日記

新しい日記をPHPで作り始めました。
とりあえずは個人的に需要のある日記の過去ログを表示する部分を先に作り始めました。
というより過去ログを見るPHPそのものはできたんですが。
ログの変換作業が結構大変なのです。
まずHTML化されたログをPHPで読める形式に変換しなければなりません。
これについては単純な置換作業で済むのですが。
で、大変なのが日付の記録方式の変換。
なんせ西暦で表された日付と時刻を 1970/01/01(Thu) 09:00:00 からの経過秒数で表さなければならないんですから!
月によって日数が違ったり閏年があったりして変換作業を自動化できないのですが、逆に秒数から西暦をすぐに出力するCGIを作ってできるだけ速くなるようにはしました。
最後は簡易検索用キーワード。
開発日記等は今まで日記の中から関連する場所を抜き出して別のHTMLファイルを作っていて、ファイルサイズも入力の手間も膨大になりがちでしたが、これを、キーワードを与えて日記の過去ログから検索して表示するという方式に変えて、効率化を図ります。
これはこれで何の関連記事かとかそういうのを、内容をよく読んで判断しなければならないのですが、開発日記用にHTMLを作ることを考えれば楽なものです。
まだ中途半端な状態なのでアップしていません。

PHPクッキー設定フォーム

とりあえず練習のためクッキー設定フォームをPHPに移植しています。
明日は早いので今日はこの辺で。

PHPカウンター

新カウンターに移行するため、旧カウンターのほうを、新カウンターに対応するデータを吐き出すように改造しておりました。
新カウンターはPHPカウンターにするので、現在のSSI&CGIカウンターよりも軽くなります。

SSIの場合
リクエスト→SSI解釈→カウンターCGI呼び出し→Perl起動→CGI実行→結果を埋め込んで表示
PHPの場合
リクエスト→PHP解釈→カウンタースクリプト呼び出し→PHP解釈→結果を埋め込んで表示
で、Perl起動というのが案外重たい作業らしく、起動という作業をしないPHPの方が軽くなるというわけです。
ついでに、途中に他の人がアクセスしても、アクセス後1時間は同じ人に同じカウンターの値を見せるようにするようにしました。
これで、自分のアクセス後すぐに他の人がカウンターを動かしてキ番登録できなくなったという悲劇も起こらなく…もしかして最初から起こってない??

そうそう、「Bomber丸World」のシステムの詳細も一部公開しましたよ。

SQLやめ

どうもMySQLはPHPに最初っからくっついてたらしいけど、ざっと調べてみたところ、専用のソフトがどうたらとかサーバーがこうたらとかややこしそ~なことが書いてあって、右クリック→新規作成→適当なファイル→名前変更、でPHPから使える状態になるわけではなさそうで、となると、データベースの内容のアップロードやダウンロードもできなさそうな気がして、それだったら自宅サーバーで本格的に使う以外では使う理由はないかなと思って、まあそれでも、いつか使えたらいいなというかすかな期待も抱いて今後もちょくちょく調べたりしていこうと思うのですが、当面は使わないことにしました。

MusicPlayer3の、起動時クローズ中バグを直したのですが、その修正版をアップしたかどうかは記憶にございません。
起動時に何かが出たり出なかったりしても動作には支障はないし、特に新しい機能が増えたわけでもないので、修正版を改めてダウンロードしなおす必要はないと思います。

有題

PHP。
モジュールじゃなくてCGIとして、
つまり、
HTTPDとは切り離して実行するようにしたら、
エラーが起きなくなりました。

XP。
電源を自動で切るオプションを切ったら、
5時間ほど放置しても、
落ちなくなりました。

簡易アクセス解析。
アップしました。

ログ。
2日~13日の分を、
回収しました。

PHP

PHP入れてみました。
一応ローカルでは動くようにはなりました。
しかしSSIとは相容れない関係である模様。
いろいろありまして、アプリケーションエラー多発。
サーバーごと強制終了というのは辛い。
ところで、リファレンスを見ていたら.NET関数というものが。
Microsoft.NETと連携したプログラムも将来書けるようになるのでしょうか。
いずれにしても、現段階では全く動かないそうです。

<前