2004/07/07

いよいよCGIを書かなくちゃ

なんか蒸し暑いね。

DIONの方で細々とやってたサイトが、なにげなくサイズがでかくなってDIONでは20Mしかおけないところが既に16.5Mまで埋まってまして、3.5Mとか画像を多用した記事を書いたらすぐ飛んでしまうぐらいなので仕方なく更新を一時停止して新しいWebスペースでもっと楽に更新出来るギミックをつくって展開することにしました。もちろん、その先の展開としてココのサイトもそっちに統合されることになるんだとは思いますが。

ただ、一緒にするにあたってテイストの違う2サイトをまぜるのはどうなんだろうなぁという気がしてて、それについて考えてたらなんか向こうのWebスペースの容量がいっぱいいっぱいになってて全然新スペースへの移行がスムーズじゃないじゃんっ、って感じですが、例によって考えてるだけでやらないといういつものパターンなので向こうの方に「更新一旦止めるからっ」というお知らせを出したので(あんまりWebスペースがたりないから移転しようと思いつつも移転することを決めただけで何も準備してないからねー、とか裏事情を書く気にもならないんでわりとぼやかして書いてあったり)、まぁそれを出しちゃった以上オレもやらなきゃなーって気になるはずなのでそろそろ今ローカルで動いてるページ生成システムをブラッシュアップしてCGIに書き直せばOKかなーと。

とかいいつつ、フルスクラッチまでは行かないにしても結構書き直したり処理追加したりの必要があるのでプログラムが安定して動くまでは結構時間がかかりそうなんですよねー。基本的にWebベースサーバーで動くアプリケーションって書くのを避けてきたんで(今もセキュリティ上の問題とかを自分が完璧に把握してるとは言えないし)、そのツケがたまってる感じです。

あと、ターゲットプラットフォームがLinuxなのでGCCを使わなきゃならないのもなんだかげんなりなんですが、その辺とかも避けてばっかりもいられないのでがんばって書きますか。

theSpoke その後

今週からはゼミが水木の午後だったのが月曜朝一に移動したので、実質時間を拘束されるイベントは月曜朝ゼミと火曜丸一日のみになった。つまり、水曜から日曜まで5連休ににしてもいいというわけ(まぁ、さすがにそのうち1回ぐらいは研究室行くだろうけど…)。ということで、下のスケジュールを更新。

さて、6/25に発売になったVisual Studio.NET theSpoke Premium(うろ覚え)ですが、とりあえず発売を知らせる記事が出た時点で前々から「Visual Studio入れたいなぁ」と言っていた友人Mに激しくお勧めしておいたので、見事友人Mに買わせることができました(買わせると言ったって別にオレが使うわけでもないし、本人が欲しかったんだから別に悪いことじゃあない)。

ってことで、ざっと友人が使ってるのを見た感想ですが、要はVS.NET 2003なので、あんまり2002からみて変わってないんですよねー。ただ、箱の横のライセンスの所を見たら、1ライセンスでライセンスを持ってる本人のみが使うマシン3台までにインストール可能とか書いてありまして、これはなかなかいいですね。つまり、家のマシン、家のサブマシン、研究室の自分マシンの3台にいれてOKということでしょう。

それを見て、「あれー、オレの2002 Academicってどうなってるんだろなー」とか思ってさっき2002 Academinの使用許諾契約書を読んでみたんですが、1ライセンスでどこまで利用出来るかがよく分からなかったりして、結局どうなんでしょう…。

って、使用許諾契約書だけを見ても全然ライセンスが謎だったんですが、もう1枚追加使用許諾契約書が入ってて、そこでは「最大3台のコンピュータ上で本製品のコピーを作成し、使用する(以下略)」って事が原文に追加する形で書いてあるので、つまり原契約書の方では本人のみが使用することに限り何台でもインストールしてOKであるが、追加契約書ではそれを最大3台に制限してるってことですかね。ということで、とりあえず2002 Academicでもオレだけが使う分には3台までならインストールしてOKということですか。さっそくサブノートの方に入れておこう。

で、話をtheSpokeに戻しますと、2002 Academicで6枚だったCDが1枚増えて7枚になってる他は特に変わったこともなく(MSDNのディスクを独立させたから1枚増えた?)、あいかわらず学生ツールとかもついてますし、新規で買うにはtheSpokeはやっぱりお得そうですねー。

ということでサンプルを動かしてみたという友人Mと「何からやっていけば良いんだろうねー」とかいう話をしてたんですが、私がプログラム学んでいったときのことを思い出すと、

  1. Cの入門本を3日ぐらいで読む
  2. Visual C++の入門本を5日ぐらい読む
  3. とりあえずMFCでプログラム書いてみる
  4. MFCのソース読んでオブジェクト指向とカプセル化を知る(遅い)
  5. MFCのソース読んでイベントドリブンなプログラムの仕組みを知る(遅いっ)
  6. プラットフォーム非依存なライブラリを書きまくる(私の場合はXMLパーサとUnicodeなstringクラス)
  7. PlatformSDK落としてきて非MFCなWin32プログラムを書いてみる
  8. 自分で書いてたメモリ管理とかをSTLで書いてみる(これは非常に便利)
  9. 最近はgccとかでも動くようにWin32APIからCRTベースに移行してみたり

という感じでした。元からプラットフォーム依存な部分と非依存な部分を分離するコーディングを心がけるようにはしていたので(クラスつくってカプセル化するときも、コアな処理クラスとGUI部分は切り離してカプセル化)、一貫してそれを貫いてたのは良かったかなーと。

で、友人Mと話してて、友人Mが「たとえばさー、こういう画面領域のなかで非常にたくさんの図形が全部独立したスピードと加速度のベクトルをもって動くのって、(画面更新のための)タイマー何本もいるの?」なんて言い出して、「それってつまり弾幕はどうやって実現されてるのかってことだよねー、ニヤニヤ」とかいう話をしたりしましたが、やっぱりプログラム書く人間になるとゲームとかでもどうやってその処理がコーディングされてるのかを考えるようになったりするわけで、そういうことを考えたりして自分なりにどう処理して実現するかを考えるだけでも相当いいスキルアップの材料にはなるよなー、とは思ったり。

あ、ちなみに弾幕がどうやって実装されるかについては、やっぱり弾じゃなくて弾幕ですから、弾1つ1つを処理するんじゃなくて弾幕にパラメータを設定して弾の塊として処理してるんじゃないかなーとはおもったり。友人Mの想定してる弾幕ゲームは東方系のシューティングだと思いますが、あれをやってる感じでは、弾のスピード、加速度、発射角度に加えてWAY数とWAY角度あたりを保持しておくと弾の幕として処理ができていいんじゃないですかねー、と思ってますが(X分咲きとかみたいに分裂する弾とかもあるのでやっぱりイベント的な組まれ方も必要だと思いますが)、実際ああいうのはどうやって実装されてるんでしょうかね。

うされもん @acidlemonについて

|'-')/ acidlemonです。鎌倉市在住で、鎌倉で働く普通のITエンジニアです。

30年弱住んだ北海道を離れ、鎌倉でまったりぽわぽわしています。

外部サイト情報

  • twitter
  • github
  • facebook
  • instagram
  • work on kayac