日記(1054)

<前 次>

迷惑な話じゃ

えーかげんDirectX9SDKでコンパイルできないのに痺れを切らしたので、DX9SDKをアンインストールし、DX8.1SDKをマイクロソフト以外から探してきてインストール。
一発でコンパイルが通りました。
これでまたパネルγの開発が再開できます。

今日は飛び込みがあったらしく電車が30分遅れに。
1時間ほど余裕を見て家を出ていたからよかったものを…

.NET

学校のVC++.NETでDirectXが使えなかったからVB.NETのほうで挑戦。
VB8からアップグレードする機能かなんかを使ってコードを書くまではできたけれどもセキュリティエラーにより動かず。
うちの学校は開発環境用意しておくだけ用意しておいて使えないようにしておくのか!?

クロオくん

なんかブラックジャック全巻がセットで売ってあって、買おうかなと思っていたのですが、値段を見るとセット定価税込10170円、全17巻なので少し高いんじゃないかと思って一冊の値段を確かめてみたら、562円+税で、単純計算でいくと562円*17巻*1.05=10031円で、明らかにセットのほうが高い。
しかも、うちには確か2~3冊ほどブラックジャックの本はあったので、その分差し引いて8000代前半ぐらいでないと損なのです。

ゲームのページを消しました。
余計なコンテンツばかりに力を入れていては肝心のプログラミングやダウンロードの更新がおろそかになってしまいそうだったので。

重い思い

サーバーの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点、何連鎖かすると数百点、何十連鎖もすると万の単位に!
パネルの落下速度が少し問題か。
スクリーンショット公開しました。

<前 次>