「プログラミング」に関する日記(33)

プログラミング関係の話題。プログラミングコーナーを更新したとか、プログラミングの内容に踏み込んだ話とか。

<前 次>

少し体調が悪い

プログラミングのインデックスページにスタイルシートを使ってみました。
ついでにHTMLの文法に従うように書き直したら文法チェックで100点になりました。
まあこれで100点だったとしても、実際は悪くないというだけなんですけどね。

プログラミングのところにある、サンプル&ソースコードは、元々解説ページはなかったのですが、簡易のものでも付けることにしました。
名前だけじゃなんに使うソフトかわからない場合も多いのでそうすることにしました。
本当はアンケートを取ろうかとも思いましたが、結果はほぼ目に見えていたので、その予想を基に作ることにしました。

アクセスログ回収。
404はほとんどなし、良好。
検索、YAHOO!のやつがNOINDEXを無視して拾っていきやがる。
1ヶ月ほど様子を見て改善しないようならばYAHOO!のロボットはアクセス禁止にする。
新たなリンクはない模様。

無駄でした

休講連絡を見落としていたのか、たまたまタイミングが悪かったのか、休講が一つ入って、その影響で予定が狂ってしまって、4時間ほどが無駄となりました。
これがなければ昼までには更新できていたというのに、結局更新は夜になってしまいました。
そんでもって、休講じゃなかった授業では、ちょうど答えられない問題で私が当てられて、前も同じようなことになっていたのを思い出して少し不愉快な気分になっていました。
それで苛々していたために、8時ごろには更新できていたというのに、9時ごろになってしまいました。

Withは意外に遅い

VBで、Withブロックを使った場合と使わなかった場合のユーザー定義型へのアクセス速度を計測していたのですが、結構理不尽な結果が出てきています。
高い確率で明日更新するので、「With使ったら速いぜ~」などという情報を無条件に信じ込んでいる人は一度見ておいたほうがいいと思いますよ。

学校のパソコンで、JBuilderが固まるためJpadというエディタで作り直していたのですが、やっぱり固まりました。
どうやらNetscapeを使っていると操作できなくなるみたいです。
ブラウザを使わないとアプレットの確認ができないのですが・・・・嫌がらせですか?

爽やかな初夏の陽気、授業が終わって外の新鮮な空気を胸いっぱいに吸い込もうとしたら・・・・
迂闊だった。ドアの付近は学校内で数少ない喫煙所・・・・

投稿掲示板にて

「ふにゃgba」は、任天堂が特許を取ってエミュレータがどうのこうのとややこしいことになっているため、開発を中止することにしました。
エミュレータを使わずGBA実機に転送して遊べば問題なしなのですが、いろいろと大変なのでもうやめます。
ん?待てよ、GBA用のJavaVMを作って、動作テストはWebブラウザのJavaアプレットで行って、完成したらVMごとGBAに転送してみるとか?
要は、GBAのエミュレータをパソコンで動かすのではなく、パソコンのエミュレータをGBAで動かすということです。

「ふにゃふにゃ」用のステージをアップしました。
本当はステージ内部に潜り込めるバグがあったのですが、ほったらかしでアップしてみました。
本当はゲーム本体を改良してステージももっとよいものにしようと思っていたのですが、そのままでアップしました。
どこに?あの場所に。

「アクセス解析」で、結果表示中に途中で中断する機能を入れてみました。
ループ中にDoEventsを入れたのですけど、元々の処理が非効率的で非常識なほどに遅かったので、DoEventsを入れても以前に比べての遅さはほとんど気になりませんでした。

プレイステーション2用のメモリーカードを買いました。
これでドラクエ5が勧められそうです。
その前にドラクエ7をクリアしなければなりませんが…
ちなみに、ドラクエ7は、いつでもラスボス戦に行けるようになっていて、今は天地雷鳴師を目指して修行中です。

今日は床がいつもより滑ります

検索語チェックに、何の単語で検索してきたのかを表示する機能はあっても、その単語でどのページにいったのかを調べる機能がなかったので、その機能をつけようと思ったのですが、検索語チェックに直接入れるのは難しそうなので、ログ表示画面の欄に直接URLデコードをかけて、リファラから検索語が大体わかるようにして対応してみました。
ついでに、ログの保持件数が増えると、処理に時間がかかり(やけに効率の悪いプログラムを組んでいるのが原因です)、フリーズしたように見えるので、処理中はWindowsに処理を返すような処理も付けてみようかと思います。
ただ、これをつけると処理速度がさらに、感動的なほどに遅くなります。

早速その付けてみた機能を使ってログを見てみると、速度比較のところにWithステートメントのことで入ってきた人がいるようなので、次の更新はこれになるかもしれません。
言われてみれば、速くなるらしいから一応使っていたけど、アクセスするプロパティの数や、参照するオブジェクトの種類など、いろいろ条件を変えれば速度はどう変化するか、そしてどれほど効果的なのかを調べてみたことは今までただの一度もありませんでした。

プロッグルーム

HPマナーの参考にするため、普段は行かないようなやなサイトを見て回りましたが、いろいろありましたねー。
客へのローカルルールがやたらと厳しいのに、自分の違法・違約に関しては知らん振りとか。
アップロード掲示板に貼り付けた画像を直リンクするヤツなんかほんのごく一部しかいないと思っていたのに探せばウヨウヨ出てきたり…
でも確信犯相手じゃ効果ないだろうなぁ…

プログラム及びスクリプトの開発が滞りがちなので、しばらくはHPマナーを更新しつつプログラミングをこっちで進めていこうかと思っています。
とりあえず、プログラミングのページの名前を若干変更しました。
これにはちょっとわけがあるのですが、そのことについては後日お話します。

学校のJBuilder、やっぱりだめです。
Netscapeで情報を見ながらプログラミングするので、相性が悪いのが原因かもしれません。
もしかしたら純粋にJBuilderかWindowsXPのバグなのかもしれません。
あるいはもっと単純に私の操作ミスかもしれません。
それとももしやウィ…

例えば梨

次の更新のための文章を書いていました。
とりあえず「ByValとByRef」のときよりはマシな例え話を持ち出すつもりです。
個人的に重要そうだと思ったところを優先的に更新していくつもりです。
あと、「趣旨」を「はじめに」に変えて、内容を少し手直ししました。
面倒臭いから閉鎖しちゃおうかと思っていたところにあんなことがあったから、多少はやる気になったようです。
とりあえず、例え話を書いたら更新できそうです。

メルビンが衣装箱→飾り箱に

FEやってたら急にブレーカーが落ちて電気が切れました
原因は恐らく、電気ポットでお湯を沸かしながらホットプレートを使っていたことです。
まあ要するに、FEの中断のデータが飛びました。

一部のコンテンツで、戻るためのリンクの書式を変えました。
将来的には全部のページで変更する予定です。

100の質問系のサイトを集めて回っていました。
800個以上は集めましたが、リンク切れや興味ないなどで、多分ほとんど捨て去ると思います。

ひまわりしてみたのですが、あまりうまくいきませんでした。
多分正規表現の方法がおかしかったもの思われます。

じぇーびるだ

学校のJBuilderが使えるようになりました。
自動的に入力候補が出たりアプレットのテストが気軽に行えるというのがいいですね。
これを機に「fffj」の開発を学校のパソコンに移行します。

電気の実験(実のところ電圧・抵抗を測るだけ)をしていたら、なんと、コンセントに機器を接続しても全く動かない!!
と思いきや、ブレイカーが落ちていただけ。
9.00V電源を使っているのに電圧降下が9.02V!!
0.05Vほどメーターがずれてました。

れっどはっとりなっくす

今日学校に行ってみたら、開閉禁止のドアを見つけました。
開閉禁止だとドアとして機能しませんよね。
しかも開かずの扉であると同時に、一度開いてしまうと閉まらずの扉になるのですよ。

学校のパソコンが新しくなりました。
それに伴っていろいろ変わりました。
で、プログラミング環境として、VS.NET2003、Delphi6、JBuilder、などが用意されていましたが、VS.NET2003はメモリ不足で動かず、JBuilderはライセンス登録がされていなくて使えないため、実質使えるのはDelphi6のみという、以前(VB6・VC++6・gcc)よりずいぶん不自由な環境になってしまいました。
こうなればDelphiもやってみますか。

取得単位と必要な単位を表にしてまとめてみました。
卒業に関して言えば、専門科目は特に問題ありませんが、教養科目が悲惨なことになっています。
苦手科目でもちゃんとやらないと。

ヴぉーとぅ

「ひまわり」のサンプルを見てみたのですが、大部分は、重くて使い物にならないという印象がありました。
サンプルゲームをやっても、はじめはそれなりに動いていても、1分もしないうちに動きががたがたになったりして、結局ろくに遊べなかったりします。
他のサンプルや作った動機などを見ていると、どうも大規模なソフト作りよりも、自分で自分にあったソフトを作るのに向いているようです。

このサイトで使っている更新予定のCGIを「VOTO」として公開しました。
面倒なのでマニュアルは入れていません。
CGIそのものに書いてある説明を参考にしてください。
ちなみに、「VOTO」という名前は、「Tokio's Enquete」というのがいくらなんでも安直過ぎる命名だと思ったために、「vote」の「e」を「o」に変えたものです。

Sunflower

学校に行って成績表を貰ってきました。
10時に行ったら間に合うだろうと思ってそれに間に合うように行ったら13時に成績表配布であったことがわかり、近くの電気店で時間を潰そうと思っていたのですが、なにぶん歩いて2時間の距離だしバス代は惜しいしということで行くのはやめ、学校の生協で立ち読みをして時間を潰すことにしました。
すると、日本語で書くプログラミングの本を見つけました。
「ひまわり」というプログラミング言語だそうです。
サンプルソースを見てみると、BASICなどの通常のプログラミング言語の解説(not直訳)のような雰囲気で書いていくものであるようです。
さらに、すぐ使える便利な機能も満載で、気軽に使えるというのも満更嘘ではなさそうです。
ただ、難点を挙げるとすれば、ランタイム別の実行ファイルは45KB、ランタイム込みの単体で動くものにいたっては2MBが最低でも必要という、ネットで完成品を配布するにはでかすぎるサイズがあるでしょう。
話を戻しまして、成績のことですが、中国語に、中学校の頃の英語と全く同じ現象が起こっていました。
最初は簡単だったので余裕で優、最初の調子で続けていたからペースアップに追いつけず、良。
大丈夫ですよ、このまま可→不可と落ちていくなんてことはありませんから。・・・・多分。

つくりぷびびえす

プログラミングのところを更新しました。
CGIでよく使われるPerlについてです。
外字やWindows以外の文字を除けば多分あれで全部です。

また、サンプルとソースをプログラミングのサンプルのページに移動しました。
内容がプログラミングなのにダウンロードページにあるのはどうかと思ったためです。
ついでにサンプル置き場も改装しました。
それと、ダウンロードできるファイルには一部私の本名を書いていたものがありましたので、それらについては修正しておきました。

今後はしばらく新掲示板の作成をしていると思います。

やっほー

個人的に使っているリンク集CGIが完成しました。
これは言ってみればブックマークの代わりのようなものなので、配布も公開もする予定はありません。
リンク先の追加・編集・削除ができます。
また、たまにしか見ないページは手動で2ページ目に移動することができます。
ついでに、表示にはHTMLファイルを使っているので表示が速いです。

速度比較のページが完成しました。
あとはこれをアップロードするだけです。
このコンテンツを作るにあたって、VBソースにある速度比較のプログラムでGhostWindow対策やバグ取りをしたので、そちらのほうを一足先にアップしておきました。

ドラクエ6のページを更新しました。
もはや"普通の"ゲームのページにはできそうもありません…

素早きマナー

プログラミングコーナーの「VBで速度比較」を作っていました。
いろいろな処理を違う構文で実行して時間を計っています。
とりあえずあまり数は多くないけど速度比較そのものはできました。
ただ、速度比較に関して、ちょっと困った問題が起こったので、それもあわせて書いているためもう少しばかり時間がかかりそうです。

「HPマナー」の移転の準備を始めました。
まずサイト本体に移転の予告。
そしてこちらに移転先となる場所を作っています。

氷山登り

ゲーム紹介の、アイスクライマーのページを作りました。
スクリーンショットらしき画像がありますが、あれはゲーム画面を見てパーツをちまちまと作っていき、それを並べて作った画像です。
あんなシーン、実際のアイスクライマーにありませんって!
ちなみに、63面までいったのは、数年前の話です。

「ふにゃふにゃ」の追加ステージ「不倫した神父」のテストをしていました。
実質遊んでいたわけですが。
前にもここに書いたことがあるかもしれませんが、このステージは「大乱闘スマッシュブラザーズDX」の隠しステージ「ブリンスタ深部」をモチーフにしたものです。
つまり、回ります。

プログラミングコーナーの次の更新は、速度比較に関するものにしようと思っています。
速度比較そのものはいろんなサイトでやっていますが、理屈ばっかりで結局大して速度が変わらなかったり、たくさん速度比較のデータはあるけど自分の使うものがなかったり、整理されていなくてどれを使うと有効なのかよく分からなかったりすることが多いのが現状だと思います。
「そんなことはない、うちの速度比較のデータは完璧だぞ!」
という人はご連絡ください。
プログラミングを更新する代わりにそちらにリンクします。
というわけで、そういう連絡がなければ次の更新は速度比較にする予定です。
速度比較したものを、速度差(遅い方が速い方の何倍の時間がかかるか)順に並べて、そのそれぞれに、差が出る理由や考察などへのリンクを付けてみようと思っています。

更新予定の更新予定

「簡易アクセス解析」をバージョンアップしました。
内容は基本的に昨日書いた通りなのですが、もうひとつ、今回はInputBoxの改良版を使ってみました。
これは自作のもので、InputBoxのように、何も入力せずOKを押したのかキャンセルが押されただけか判別できないということもありませんし、入力欄が足りなくなるということもありません。
同じものがダウンロードの「VBソース」からダウンロードできます。
また、マニュアルをサーバー上にも置くことによって、どのようなものかわかりやすくなったと思います。
それでもダウンロードしてくれる人は極限まで少ないと思いますが。

被検索文チェックをやってみたところ、「VB」や「TOKIO」など、あまりにもあいまいすぎて、何万件もヒットする検索ワードのみでやってきた人がいるようです。
一ページ百件表示するとして、何ページ目にあると思ってんだ・・・・

更新予定のCGIを作り始めました。
とりあえず今できているのは、更新予定の項目を追加するところまでです。
あとは、追加された項目を表示、既に更新されたものを削除、訪問者による更新してほしい項目への投票、が残っています。

立ち読みするより買って読もう

未知数さんの「座標平面」が大規模リニューアルされたそうです。
全面的にスタイルシートを取り入れてギャラリーも追加されたようですね。
ギャラリーといえば今まで…おっといけない。

最近マルチスレッドの利用について考えています。
いやいや、スレッドとはいっても掲示板に作るものではなく。
ゲームを実行するときなんかに、重い処理をやらなくてはならないとき、普通はそこでゲームを一時中断して処理が終わるのを待たなければいけないのですが、ゲーム用のスレッドと重い処理用のスレッドを分けると、ゲームを進めながら同時進行で重い処理が進められるので、うまく使えば重い処理を使っていながらゲーム中に重い処理で待たされる時間が0ということもできそうな気がします。
スクリプトを実行しつつコンパイルとか。

自己紹介を更新しました。
読む本についてです。

アドレスx2

http://www.interq.or.jp/black/minami-m/
にDirectXのサンプルがたくさんあったので見てみることにしました。
例の本に書いてある通りにやるとどうもうまくいかないのであの本のサンプルはもう信用しないことにします。
どうも「自作のライブラリを使った」サンプルであるようですが、ライブラリのソースが公開されているのでいろいろ改造して遊べそうです。

http://hp.vector.co.jp/authors/VA003665/
をリンク集に追加しました。
これからはリンク集の更新は更新履歴には書きません。
サンフラットホームページです。
いけばわかります。

HideCursor

やっぱりギャンブルの鉄則は「勝ったらやめる」、これですね。
それに加えてドラクエのカジノでは「負けたらリセット」、これも必須ですね。
というわけでこの方法を使って大もうけ……する予定だったのですが、ちょっとストーリー進行を急ぎすぎたおかげでしばらくカジノ禁止になりました。
どうやら今度はフォズ探しに専念しなければならないようです。

プログラミングコーナーを更新しました。
大き目の更新からもう2週間が経っていたので、ストックしておいた更新のネタを使ってみました。
そういうことなので現在ShowCursor関数に関して問題があるのは「消えない!」ということだけだと思われます。
あと、密かにプログラミングページのリニューアルをもくろんでいたり。

<前 次>