開発日誌>2008年8月

開発日誌: 2008年8月


最近ようやっと涼しくなってきましたね。 2008/08/22 (金) - myun2

Neptune-UI 0.01.40.20 の公開(2008-07-12)の直後辺りに実は体調を一度崩していました。
原因はクーラーの効きすぎた会社と、クーラーが無くPCの発熱にて室外よりも更に+3度くらいある自分の部屋との 温度差が余りに激しすぎたためです。(下手したら10度くらいな差・・・)

病名的には「急性扁桃炎」と言うものです。扁桃腺がパンパンに腫れあがるので、水を飲むのすら辛かったりも・・・。
最近はだいぶ涼しくなってきたので、もう罹る可能性は低いとは思いますが、来年以降皆さんも気をつけましょう。 (ちなみにこれに罹ると一週間くらい寝込みます。有給モッタイネー・・・)


さて、まずは直後に寝込んでしまったため書くのがお流れになっていた Neptune-UI 0.01.40.20 の話をしましょう。

まぁ、そのちょい前に 0.01.40.07 も公開していますのでそれも含んだ話。
06/29の日記で言っていた「HitTest」を用いて、画像のドラッグや、右クリックメニューの表示等に対応しています(0.01.40.07)。
0.01.40.20 ではこれに加え、msdevにパスが切られていないとVC++で開いたり、 コンパイル出来なかったりと言う問題を修正しています。 (VC++.NET以降ではVCを開いて、プロジェクト変換を行って、コンパイルする事となりますが・・・)


近況。

最近、だいぶ涼しく過ごしやすい日々が続いていたので、ぼちぼち開発を再開し始めています。
8/前半ではチラホラ、と言う感じでしたが、最近では割と本格的に。

最近は、YukiDoc 関連の所を作りこんでいます。
・・・5/28辺りにそこらへんの事を書こうとして、結局ボツっていますが、
まぁ、Neptune──もといそのコーディングを行うためのサブシステムであるYukiでは、 そのAPIリファレンスをXML化し、そこからXSLTを用いて色々な形式のHTMLドキュメントに 自由自在に整形できたり、またプログラムから読み込んでインテリセンス的なものとして 説明等も表示出来ちゃうという一石二鳥大作戦なのです。

で。5/28ではそのXMLを読み込むにあたって何を使おうかと悩んでいたりしていた訳なのですが、
結局のところはTinyXMLに落ち着きました。

他には定番 Xerces も検討したのですが、
やはりどうも使いづらい感があるので・・・。後は「expat」なんていうのも あるみたいですが、初めて聞いた名前だけあってやはり資料も少ないみたいなので、結局TinyXMLを選択しました。

TinyXMLを使ってみるのはこれが始めてなのですが、非常に使い勝手が良いですね!
Xercesでは、矢鱈と大層面倒なコードを書かされる訳なのですが、TinyXMLでは非常にシンプルで、
分かりやすく、直感的なコードを書けるのが良いです。


XercesとTinyXMLでは、パフォーマンス的にXercesの方が分がある、と言うような話を 聞いたこともありますが、正直Neptuneは元々、ややハイエンドなPCをターゲットとして 開発している感がありますし(DirectXとかガシガシ使うし)、また、このプログラムが世に出回る頃には、 PCスペックも今の2、3倍向上している事でしょうから、とりあえずTinyXMLでいいかな、と思いました。
(確かXercesとTinyXMLの差も、1.x倍~2.x倍くらいだったと思う)

まぁしかし、YukiDocもかなり巨大なXMLとなりそうな気がするので、
最終的にはTinyXMLでは耐えられないような状態になる可能性もありますが・・・。

まぁでもそん時はそん時で、TinyXMLとほぼ同等なインターフェースで扱えるようなラッパークラスを 用意して、中身はXerces、expatを使用したものに挿げ替えれば良いだけの話だとも思いますし。


・・・と言う感じで長々とお話しましたが。

ちなみにYukiDocXMLの仕様はまとめてあってこんな感じです。
ここ数日はこのYukiDocXMLを読み込む部分を作っていて、昨日やっとクラスの情報までを 読み込めるようになりました。ただ、UTF-8で読み込まれてしまうのでShift_JISに 直してやらんとなぁ・・・と言う感じです。
あ、でも、あらゆる言語環境で使う事を考えるとUnicodeに変換して WideChar系APIで読ませないと駄目か・・・。