DirectX版特訓。制作は順調なのか不調なのかよくわからない。
とにかくゴキブリがわらわら出てくるというイメージが先に出来てしまったので、ゴキブリを打ち落とすシューティングゲームにしようとか思っている。
しかしゴキブリというのがどういう動きをするのかよく解っていない。
あと、ゴキブリを描けない。難問である。
メールの返事がきた。
実際、ANSIに準拠していたらプログラムを書くのは面倒です。
ま、そりゃそうだ。ANSIに準拠してなくても面倒だ。
しかし、
といいますか、DOS時代のコンパイラはまだしも、Windows系のコンパイラはコンパイラが違うと、全くコンパイルできないのが常識ですよね。
というのは初耳である。
少なくともANSI準拠のソースならANSI準拠のコンパイラでコンパイルできなければおかしい。私の理解ではコンパイルできるのが定説なのである。
また、ANSIに準拠しているだけではプログラムは使えません。MS-DOSでBIOSを呼ぶこともできません(確か…)
大間違いである。
LHA.EXEは今となっては完全にANSI準拠というわけではないが、いろんなコンパイラでコンパイルできる程度にはANSI準拠であった。ANSI準拠でもプログラムは可能なのだ。
また、unix系のソフトウエアは、大抵ソースで配布されている。実行可能オブジェクトではないのだ。これはどういうことかというと、使う時には自分でコンパイルするのだ。なにも作者と同じコンパイラを使う必要があるわけではない。普通なら、手元にあるコンパイラでコンパイルできる。
それはある程度のC言語の決まりに基づいてコーディングされているからだ。この決まりを文書化したものがANSI Cの仕様である。
確かにANSI準拠のコーディングをしていたのではBIOSは呼び出せない。
だからといって何か困るのだろうか。
Windowsでプログラミングする場合、BIOSなんかまず使わない。BIOSと言ってもPC/ATのBIOSとPC-9801のBIOSは別物だしPC/ATでもBIOSメーカーによって様々である。
そういう機種や環境に依存するような部分はライブラリを使えば解決するので、わざわざBIOSなんかを呼び出す必要はないのだ。
そもそも、BIOSのルーチンと言うのはリエントラントではないというのが定説なので、昨今のマルチタスク環境からBIOSなんか呼んだ日には誤動作すること請け合いである。
メールの返事がきた。
厳密に「ANSI」準拠のプログラムを書くなら、voidではまずいのかもしれません。
としながらも、
しかし、実際のプログラミングではmainはvoidで定義してしまってもエラーは出ませんでした(VC++6.0)。
と、動いているからいいじゃん、という態度。
それでは世に出まわっているANSI準拠のコンパイラではなくて、Visual C++を使えということになってしまうのだが…。さらに
ANSIの基準を元に独自の機能拡張をしていますから、voidで定義しても構わない、と私は思います。
とあるのだが、mainをvoidで定義するメリットというのが想像を絶する。
未定義にしてまでvoidとして宣言するのはいったいなぜか。
というわけでまたメーる。
BASICからC言語への架け橋というメールマガジンを購読してみる。
今回届いたのは第3回なのだが、最小のソースとして
void main() { }
なんてあったので驚く。
今時こんな事を書くなんてよほどの初心者でも無いというか、以前に初心者の見方だったっけ、C言語会話講座だったっけ、あのあたりでvoid mainは誤りだというfjとかCマガジンで大きく話題になったので、もはやInternetに接続できて知らない人はいないのではないかと思っていたのだが。
ANSI Cではmainの返却値はintでなければならないとなっている。
intでなければどうなるかというと、その結果は未定義。何が起きても構わないことになっている。
このメールマガジンだとわざわざvoidの説明までしてあるので確信犯的である。
実は汎用機ではOSに返す返却値が0じゃない時にはご丁寧にも異常終了したという旨のメッセージを出してくれるので、mainをvoidなんかで定義したときには大変なことになる。返却値が不定になるので、まず毎回「異常終了しました」とかいわれて管理者が呼び出されるのだ。
とりあえず、執筆者にメールを送る。
ぐうたらして過ごす。
ボルシチは延期。
しかし、サンバdeアミーゴ、見ている分には面白すぎる。どうにかしてくれ。
とりあえずドーナツ買ってクリスマス気分に浸る。
昨日の日記…っていつのだとか言われそうだが21日の日記にいくつか誤字があった。さっそく掲示板で指摘していただいたので助かる。
WWWで書くと言うのは双方向性が無いと言うか、あまり感じられないけど、掲示板の一つでも置いておけば随分変わってくる。
もっニも双方向性が弱いWWWではなくて、パソコン通信ならもっと双方向性を強くすることができる。もともとWWWって情報発信用というか、書きたい人が書いた内容を見たい人が見るという道具だったわけで、一方的に書くには非常に適しているメディアだと思う。
パソコン通信だとお互いに書くことが可能というかもろに掲示板なので書いてある内容にツッコミを入れるのは簡単だ。WWWだと、どこかのページに書いてある内容にツッコミをいれたくても、それを読ませるためにページを作っても見せたい人が読んでくれるとは限らない。
メールとか掲示板と言うのは読んでもらえる可能性が高いという意味では効果的だとは思う。ただ、メールだと他の人からは見えないという点でちょっち。
さて、本当は昨日の日記に突っ込むつもりだったんだけども。
いいものなら売れる。
至言である。しかし、いいものだけでは売れないのだ。
ウチはいいものしか置いていない、と言い切る店がある。
だとしたらどの商品も売れるはずである。なぜか現実はそうはいかない。不思議である。
私はどちらかと言うと買う側だが、いいものしかないと買えないのだ。
なぜかって? 比べられないからだ。自分で「これはいいものだ」と納得しないと買う気が起きない。
今のところ、シャープペンシルを買う時にはPILOTのヤツしか買うつもりが無い。しかもPILOTのならどれでもいいというわけではなくて、¥2,000のダブルノック型と決めている。
他にいいものがあればあっさりと乗り換えると思うけど、今のところこれ。
ロットリングのとかファーバーカステル、ゼブラ、セーラー、ステッドラー、ぺんてると試したけどダブルノックだとPILOTのがベストだと思う。
ダブルノックにこだわらなければステッドラーとぺんてるも捨てがたいものがある。
という感じで今の私はPILOTを選んでいるわけだが、この結論を出すまでにステッドラー、ぺんてる、ロットリングのシャープペンシルを使ってきた。結局、自分で使って比べてみないと解らないわけ。
もちろん、人によってはステッドラーの方がいいという人もいるだろうし三菱のが好みという人もいるだろう。
いいもの、というのは
という解釈がある。いいもの一つだけ置かない店というのは、それが好みにあわない人にとってはいいものが無い店になってしまう。また、それが本当にいいものなのか、どのようにいいものなのか判断できない。他のものと比べてみないと解らないのだ。
またシャープペンシルを持ち出すが、持った感じのバランス、ノックした時の芯の量、手ざわり、重さ、太さ、芯のがたつき、と店頭でチェックするだけでもこのくらいは確認する。で、比較した結果、気に入ったものを購入するわけだ。シャープペンするに限らず他のものでもそんな感じではないだろうか。こっちの方が重いから得、こっちの方が色がきれい、あっちはおまけが付いてくる…という感じで。
他のものと比較して、納得して買った買い物だと、結果的にハズレてもあきらめがつく。買った時にはその品物に納得して買っているからだ。
しかし比較するものが無くて買った場合には、結局後悔することが多い。もっといいものがあるのではないか、とかいう感じである意味、疑いを捨て切れないから。
そういう意味で、選択の余地が無い店というのは結局繁盛しない。ここで買い物してもいい買い物をしたと思えないから。
自分で選択した結果ではなくて、他人、つまり店が選択したものを押しつけられた結果の買い物になってしまうので、自分で買い物をしたような気にならない。
売れる店、というのはいい買い物をしたと思わせる店であり、そのためにはお客に選択させる余地を作らないといけないし、選択の結果がいいものでないといけない。
そのためには、いいものも必須だが、それの比較の対象となる同種の商品が必要なのではないだろうか。
いいものだけを置いていても売れないし買う気が起きない、というのは散間とした専門店と100円ショップを見比べるとなんとなく実感できる。
100円ショップの場合は品揃えに加えて100円という価格的な安心感があるので一概に比較はできないが、何にしろ品揃えが豊富な店に行ってしまう。
インターネットでは半角カナか使えないという定説がある。
この定説自体非常に怪しいのだが、定説の根拠もすごい。
私の知っている限りでは
他にもあったような気がするが、まあ。忘れた。
さて、半角カナって8ビットなのだろうか。
処理系の内部表現が8ビットだからと言って、そのまま転送するわけじゃない。私が使っているFIVA、OSはWindows 98である。文字コードの内部表現はおおむねシフトJISに準拠している。だからといって他の文字コードが使えないわけじゃない。お使いのブラウザ、文字コードの項目になんか解らないけどいろいろありませんか? 日本語だけでもEUCとかJIS、シフトJISなんていうのがあるのでは。
つまり、内部表現がシフトJISでも他のEUC、JISあたりの文字コードを取り扱えるわけだ。
情報交換用に内部表現とは違う文字コードを使うことはよくある。
パソコン本体はシフトJISで処理するけどプリンタは7ビットJISだったということもよくある。
内部表現が8ビットだからと言って、情報交換用コードが8ビットである必要はない。7ビットの情報交換用コードを用いれば問題ない。
さらっとインターネットでは8ビットデータは送れないなんて書いてしまったが、これもおかしい。インターネットでなにかプログラムや画像をダウンロードしたことは無いだろうか。画像は8ビットで構成されているデータだ。7ビットしか転送できないのなら画像を正常に転送できないハズ。ああ、だからモザイクが…という訳ではない。勘違いしないように。
プログラムも8ビット使っている。ああ、だから時々バグるのか…。
ともかく、8ビットのデータだって正しく転送できている。半角カナは8ビットだから、というのも8ビットデータは送れないと言うのもどちらもデタラメだ。
UNIXでは半角カナが使えないという話。ウソである。UNIXでよく使われている文字コード、EUCでは半角カナを呼び出すための方法も定義されている。
過去には特定の処理系では正しく処理されないという歴史はある。
PC-98のDOSではISO-8859-1がうまく表示できないと言うのと同じようなものである。ちなみにPC/ATのDOSとか、PC-98でもWindows上でなら表示できる。
むしろたまたま表示できない、処理できないという、ある意味これはレアケースではないだろうか。
ちなみに、海外でよくe-mailでもWWWでも使われているこのISO-8859-1という文字コード、8ビット文字コードである。
シフトJISはMicrosoftが作ったローカルな規格であり、国際規格では無いという主張をする人もいる。これは私からみると単にMicrosoftがキライなのではないかと思えてしまう。
シフトJISの策定にはMicrosoftだけではなくてIBMも絡んでいる。また、JISという名前の指すとおりjapanローカルな規格で構わないのだ。国際規格で決まった言葉だけを使わなければならないというのなら、やはり皆さんエスペラント語をお使いなのだろうか。
シフトJISは、現在ではIANAにも登録されASCIIコードと同等に国際的に認められている文字コードセットである。ASCIIに並んだよ、天より。というわけだ。
文字化けする、というのはそりゃ使っているソフトウエアが対応していないだけの話だろう。
たとえばPC/ATのDOSを日本語モードにしてある場合には、ISO-8859-1は文字化けする。
国際規格でないから化けるのではなくて、対応していないから化ける。対応していれば化けない。
じゃあ、なんでe-mailでは半角カナが使えないのだ。
という話になるかもしれない。今現在、日本国内でe-mailを使う時の標準文字コードセットはISO-2022-JPである。JISコードとかJISコード(7ビット)とかいうのがソレだ。
これはいわゆるJISコードとはちょっち違う。JISで規定されている7ビット情報交換文字符号集合とかいうのとはちょっち違う。何が違うかと言うと半角カナに当たる部分が無いのだ。
だから使えない。ISO-2022-JPを使う限り、半角カナは使えないのだ。
ちなみに、ISO 2022は国際規格だがISO-2022-JPは国際規格では無い。ISO 2022というのは、文字コードセットを切り替える方法について定めた規格である。
ISO-2022-JPというのはISO 2022で定義された切り替え方法を用いて、日本語を取り扱えるようにしようという文字コードセットだ。ISO 2022は文字コードセットの切り替えに関する国際規格ではあるが、ISO-2022-JPは国際規格では無い。
中には使えてしまうソフトウエアもあるが、手抜きかバグかなにかだろう。
Netscape Messangerでは使えるって? 私的にはあれはバグか手抜きだと思う。
半角カナが入っている時点で、それはISO-2022-JPでは無いのだ。にも関らず、半角カナの入っている文書を独自に7ビットコードに符号化して、その独自に定義した符号化方法を用いたにもかかわらずISO-2022-JPで符号化しましたと主張するのはバグだろう。
HPと書かれてホームページと解釈できるか、という話題が今だに続いている。
HPをホームページと読むことには抵抗を感じるものの、読めなくは無い。
ただ、HPに転送とか言われるとホームページに転送なんてできないからホームページ以外の何者かだろうと思う。
電子会議室の発言ならよく解らなくても、解らないままにしておく。質問するのも面倒だし。普通の会議だと容赦なく突っ込む。ホームページだというのなら少なくともページでないと理解できない。
さらに事態は進んで、そもそもページって何?という話題に展開している。
一般的にはHTMLファイルではないかと思う。というか改めて考えるまでは私もHTMLファイルのことではないかと思っていた。
しかし、よく考えるとHTMLファイルをエディタで表示させた時(編集するためによくやっていることである。これを書いている時もテキストエディタで表示させている)ページを見ている感じはしないのだ。どうもブラウザで表示させないとページと言う感じがしないのだ。
どちらも同じHTMLファイルだが、エディタで見るとHTMLファイル、ブラウザで見るとページと認識するのはなぜだろう。
ミスドに行く。例のアレの締め切りが今日なのだ。
トートタイプが欲しかったのだが、品切れ。頑丈そうなフレームタイプをいただいてきた。よく考えたらすでにフレームタイプとトートタイプがあるのだからボックスタイプを頂いておけばよかった。
ロボコン。飛ぶ。飛ぶだけ。をい。
ちょうどチャットしていたので、話題になった。話題と言うかもはや実況中継になっている。ちなみに後から読んでも何がなんだか解らない。
適当に抜粋すると
どこに行くのだ。
浮いてお終いという気がします。
あああああ。(^^;
わびしい……
おおお。(^^;
ダメだ:-)
おおっ
おおっ
おお。
理解し難いものがあるが、当事者には解るかもしれない。コケたところとコケてから起き上がろうとしたところとか。
公式ルール通りでは無得点に終わるマシンが続出と言う情けない状態だったので、続々と追加ルールが策定されて乾坤一擲タイプのマシンが有利になっているというのもすごい。
公式ルールでは乾坤一擲は得点するのはかなり困難だったのではないだろうか。
あのルールで乾坤一擲を開発すると言うのも無謀と言うか豪気と言うか。結果的には良し。
結局デビルサマナーは中断。確かレベル30を超えた辺りだったハズ。なぜか手をつけていない。FPROGの会議室で脱力しすぎたのかもしれない。
脱力ついでにBRILLIENT2UをMIDIで打ち込む。RAVE系のノリというのがイマイチつかみきれていないので何か変。どうしてもクラシックっぽくなりそうになる。
アドバイスなんかを頂けると幸い。とかいう。
デビルサマナーはとりあえずやり直す前の時点には到達。ここまでプレイするのに以前は半年かかっていたのか? 当時はずいぶんと忙しかったらしい。
どうもデビルサマナー話が見えてこないので、最初からプレイし始めることにする。というかなぜか取扱説明書が見当たらないので何をどうしたらいいのかすら解らないとかいう状態。
手探りで初めてみたものの、迷路で迷う迷う。おもむろにキーカスタマイズをしようとしたマップのボタンがあった。最初から知っていれば迷わなかったのでは。一体取扱説明書はどこに行ったのだ。
思わず真・女神転生デビルサマナーをプレイし始める。以前のデータはなんと2年前の日付だった。しかもレベル18。
再開してみると何がなんだか解らないが、最初から始めるのも面倒な感じがするのでこのまま続ける。
堪え切れずマウスを買う。USB接続できるヤツ。FIVAのポインタではどうやっても絵を描くことができそうに無かったのだ。
ついでにDDRのためにゲーセンに行ったら知り合いに会う。自宅のそばにもDDR3rdMIXは入荷されているんだけど、筐体のメンテナンスが悪いのか良すぎるのか滑って危ないので場所を変えようと。
実はここも滑るということが解っただけであまり利点がない。白石の方だと100円で5曲踊れるし滑らないのであっちに行くほうがいいかもしれない。ただ連続で5曲踊るとかなりバテる。
ちなみに、知り合いもどうやら受け狙いのプレイを目指しはじめた模様。実は以前のディレクトリには回り方講座とかそういうのも書いてあったりしたんだけど、@niftyの方にサービスを移行してからというものなかなか転送できない。
そういえばこの日記も転送してない。
他にもいろいろ転送できていないファイルがあるので「移行しました」と通知できないというのが何ともいえない。「移行作業を始めています」とでも通知しようか。