というか、

せっかくページ記述をXHTMLにしたのにMicrosoft.XMLDOMで読めなかったという罠。SelectNodes(“//h2″)とかしたいのに。

空論

一番重要なことは俺だけが使うなら絶対に XML 化なんかしないということでしょうね。俺はそんなもの要らないので。

一番重要なことは俺だけが使うなら多分DTD無しのXML使うだろうってことでしょうね。パーサ書くの面倒なので。

require "win32ole"

dom = WIN32OLE .new("Microsoft.XMLDOM")
dom .async = false
dom .load("foo.xml")
print dom .selectSingleNode("//bar") .text

ぬるすぎ。

というか、

ゴーストの記述をXMLにするとかって話は外部仕様。動作が変わっちゃったらそんなんリファクタリングぢゃないです。

駄おまけ

なんとなく長めに持ったらさっくり化けたりってことは無いですか?

XML

机上の空論系、特に「やれば内部仕様的に美しくなるけど結果は変わらない」系はかなり嫌いです。

結果としてそれ以降の変更とかデバッグが簡単にならないんだったらそのリファクタリングは失敗です。

例えば世の中 XML が流行ってますね。さくらスクリプトとか設定ファイルも XML にしてはどうか?ああ確かにそうすれば美しいかもしれない。ここで問題なのはそうやって書式が大幅に変わっても別にやれることは変わらないということ。XML にしたらネタが3倍面白くなります、というなら俺も喜んで XML にしますが、実際にはそんな意味のある効果など無い。XML パーサやら何やらと格闘した挙げ句古いファイルも読まなきゃいけないから過去互換性も残して最終的に「新仕様できました!できることは前と変わりません」と高らかに宣言するのが関の山です。そんな新仕様俺だって要らない。

あー、単純な置き換えは死を意味するって奴ですな。一から作るんだったら(パーサ書くのがめんどいから)MSXMLで行くところですが、現在これだけのものが出来上がっててそれを置き換えるってのは反対。特にSakuraScriptはそのまま置き換えたら長くなるだけ。

やるなら、データをXMLで持つ自作栞とか、作成中のデータをXMLで保存するシェル作成補助ツール(使う人は内部dataをXMLで持っていることを意識しなくていい→出来たところで「出力」を選択するとdescript.txtやらalias.txtやらsurface??.txtやらを出力してくれる奴)あたりか。現状ではその辺のファイルにエラーがあっても何も言わずに無視されるだけなのでその辺をチェックできるツールとかあるいは。

まあ、日刊で新バージョン出せる体制ととのえないことには何をやるにしても駄目なのですが>自分。

GPL

ていうか、GPLに組み込んだGPLでないソースは公開しないといけないものなのですか?それじゃ『ジャイアン』じゃないか。という気もする。

んなこたぁない。制約は「自分の書いたソフトにGPLのソースを組み込んで公開する場合はGPLにしなければいけない」です。この制約ができるのは著作権法に、

第二十八条
二次的著作物の原著作物の著作者は、当該二次的著作物の利用に関し、この款に規定する権利で当該二次的著作物の著作者が有するものと同一の種類の権利を専有する。

という規定があるからです。(アメリカとかでもあるはず。)

で、GPLのソフトにソース非公開のライブラリをリンクするのは別に構わなかったと思います。でないと各種商用OSのlibcとかとリンクして使うことが出来なくなってしまう。

ってか復号部分の話と関係無いなコレ。