何でもかんでも値を持つ
今日プログラミングのところを更新しようかなと思ったのですが、今回から本当にインタープリタを作り始めることになるのでもうちょっときっちり作りこみながら書いていかないといけなさそうなので、もう一日ぐらいおいておいてからアップしようということになりました。
今度の更新分は「値」に焦点を絞って話をします。
もうちょっと何かを書こうと思ったのですが、まあ、あまりよいことではないので書かないでおきます。
悪いことがあったわけではありません。
今日プログラミングのところを更新しようかなと思ったのですが、今回から本当にインタープリタを作り始めることになるのでもうちょっときっちり作りこみながら書いていかないといけなさそうなので、もう一日ぐらいおいておいてからアップしようということになりました。
今度の更新分は「値」に焦点を絞って話をします。
もうちょっと何かを書こうと思ったのですが、まあ、あまりよいことではないので書かないでおきます。
悪いことがあったわけではありません。
TGscriptのIDをどうするか考えていました。
例えばIDをファイル名として記録していた場合、不正利用者がLinuxのコマンドをIDの代わりに送信してきた場合に非常にまずいことになるのです。
ですから通常CGIなどでは外部からの入力をそのままファイル名として開くようなことはしません。
しかし今回はたくさんあるかもしれないIDをファイル名として扱ったほうが非常に都合がいいと思われるのです。
そこで、IDを数字にすることで、コマンド実行をできなくすることにしました。
もちろん数字じゃなくてもコマンド実行をできなくすることは簡単ですが、ID生成のとき乱数をそのまま使えたり、IDに使われる文字の種類が少ないというだけでも充分に意味はあります。
さらに、ID偽装防止のためのキーも用意したりしました。
もっとも、ID偽装防止のキーを使うのはIDを使って悪さができる段階、つまり書き込みのタイミングのみですが。
久々にスリザーリンクやってました。
2004/09/15(Wed)の日記でも取り上げてましたが結構難しいです。
ラインブレイカ、やはりかなり効率の悪いプログラムでした。
とりあえずCで書く方法は漠然とは思い浮かんでいます。
一行読み込んでは一行書き出して、というプロセスでやると行数に正比例する時間で済むようになるのです。
そして更に、1バイトずつ読みながら1バイト単位で文字列を比較するアルゴリズムも考えています。
メモリ使用量も、核となるアルゴリズムの部分では、一行のデータと、削除対象の文字列と、文字列の一致状況の分のデータだけなので、かなり少ないはずです。
少なくとも元のファイルサイズ+変換後のファイルサイズとなる現状と比べれば圧倒的に。
マザー2のページにギーグのセリフを追加しました。
ギーグのセリフって14種類あるんですね。
知らない人が14種類と聞いたら少ないと思うかもしれませんが、実際にやった人からすれば意外と多い数字じゃないでしょうか。
ラインブレイカ、どうせ根本から考え直すならいっそのことCで書き直して思いっきり高速化しようかななんて考えたりしてます。
アルゴリズムはある程度考えています。
バックアップはオプションじゃなくて必ず作るようにして。
日記のカテゴリに「日記」を追加しました。
日記そのものについて書いた日記もたくさんありますので。
それと、日記のファイル構造も根本から見直そうかと考えたりしています。
さすがに日記のログが1500日分を超えてファイルサイズも1MBを超えてしまうといろんな部分でつらくなってきます。
バトル4のMIDI、着実に進んでいます。
あの曲はバイオリン・ピアノ・フルート・太鼓の4つが入った曲なので、一つ一つにきっちり特徴をつけながら作っています。
爆ボンのページを更新しました。
最近は参考タイムばっかりですけどね。
ブラックシティ4面をクリアしてレインボーパレスへ、そしてレインボーパレスの1面をカード5狙いでクリアして、2~4面はそのまま一発で全アイテムを入手しました。
というわけで残すはレインボーパレス1面のカード5以外のアイテムです。
今更ながら、ラインブレイカ、めっちゃくちゃ遅いですね。
今日、27日から29日にかけて異常な数のアクセスがあったことに気付いて調べていたのですが、要らない情報の削除のためラインブレイカに通したら普段なら数分以内で終わるところが高々10倍程度のデータ量で数時間経っても終わらなくて、どうにも効率の悪いアルゴリズムを組んでしまったために行数の2乗以上のオーダーで増えているような感じがします。
だとするとメモリ使用量も不必要に多い可能性が考えられるので、一度根本からソースを見直そうと思います。
簡易アクセス解析でも似たようなところで高速化ができるかもしれませんね。
こちらは根本からではなくちょっと手直し程度で。
αゲームズのページを作ろうと色々やっていたのですが、ランキングのこととか、それぞればらばらのバージョンをどう統一するかなど、気になる部分が数多くあったのでなかなか作業が進みませんでした。
ファイル名に関しては全部全くばらばらだったので重複の心配は無かったのですけどね。
TGscriptの小吹き出しを改善しました。
これでFireFoxでもそれなりの表示ができますし、IEでもより見やすくなりました。
もっとも、FireFoxのほうではなぜか存在しないはずのスペースが表示されてしまって少し困っているのですが。
あと、表面上は何も起こっていませんが、共通処理と設定のファイルを分けました。
これは動作の変更をしたいときに設定の下までスクロールするのが面倒だったという、ただそれだけのことです。
昨日のMIDIをもうちょっとマシになるように改良していました。
この曲は聞いたとおりの曲名で、曲名通りの相手と戦うときのBGMだったりします。
マザー3のニューヨクバの画像からただのヨクバの戦闘画面風のドット絵を作ってみました。
どうせヨクバと戦うならサルサVSヨクバの夢の対決にしてみようじゃないかとか、サルサが戦うならいっそサルコも参戦させようじゃないかとか考えて作ってみました。
たぶん状況から考えて空白の3年間の出来事でしょうね。