2005/10/13(木)Apollo把握

VCLをそこそこ使ってきてかつVCL_B6なる優秀なリファレンスを持っている私にとっては、Apolloの使い勝手はvisualurubyに勝るようだ。Apolloについて少し調べてみた。

・VCL全てが網羅されているわけではない
 無いコンポーネントがある。例えばTControlBarは実装されていないようだ。ただし、VCL6再配布可能ライブラリで使えないもの、Win9x系のコンポーネントが大半であるようなので大きな問題にはならないか。
 無いプロパティ・メソッドが一部ある。Rubyで実装した以上必要なくなったものもあるはずなので、問題が出るかどうかは今のところ不明。

・クラス・メソッドの命名規則はRuby側に直されている
[参考]
ap-doc@freeml.com/0000009" TARGET=_top>http://www.freeml.com/message/ap-doc@freeml.com/0000009

・VCLのグローバル関数は引数の順番や有無が変わっている
 主に混乱しそうなのはメニュー関係。とりあえず下を見る。
http://wiki.fdiary.net/apollo/?Phi-Functions#l51

・VCLにない機能も備わっている
 ただしドキュメントが少ない? on_drop_filesは最初無いのかと思ってしまった。
http://wiki.fdiary.net/apollo/?tut-tut_intro
ここのクラスブラウザーはwindowsではどうも動かないような気配だし、今のところmethodsやconstantsをうちながらいちいち確認している。

とりあえずこれくらいを把握しておけば簡単なGUIは組めそうである。

2005/10/11(火)visualurubyのWindows系定数について

winconst.rb, vrcontrol.rb, vrcomctl.rbあたりに書かれている。で、Visualurubyそのものには解説がないので調べ方。

要はWIN32API(?)のラッパーなので、
http://yokohama.cool.ne.jp/chokuto/urawaza/message/index.html
http://yokohama.cool.ne.jp/chokuto/urawaza/prm/window_style.html

ここら辺で調べる。表示例付のリファレンスはあんまり見当たらないな…… その点ではVCLリファレンス、
http://www.kanazawa-net.ne.jp/~pmansato/VCL_B.htm
が優秀だが、対照検索しなければならないのはさすがにきつい。

最近のMSDN はそこそこ軽いのでオンラインを厭わなければまあそっちでもいいか。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/_mfc_structures.2c_.styles.2c_.callbacks.2c_.and_message_maps.asp

2005/10/06(木)rdocを使ってみる

RDはどうしてもなじめなかったが、じゃあrdocはどうだろうということで使ってみた。
何も考えずにコメント書いても通るのはけっこう好み。

今の作り方はこう。
rdoc -o <出力パス> -c shift_jis -T kilmer *.rb
  • Tはテンプレートでkilmerの方が若干見やすいが、出力しない項目もあるのでテンプレートを指定しない場合と見比べて好みのものを選べばいいだろう。
1.8.2ではインストールが悪かったのか、method_list以下を出力してくれなかったのだが、1.8.3をインストールし直したところそれは直った。

とりあえず目についたところで定数(constants)を出力しないのを直した。というかほとんど単なるコピペ。
>diff kilmer.rb.orig kilmer.rb 

310a311,330
> IF:constants
> <table cellpadding=5 width="100%">
> <tr><td class="tablesubtitle">Constants</td></tr>
> </table>
>       <div class="name-list">
>         <table summary="Constants">
> START:constants
>         <tr class="top-aligned-row context-row">
>           <td class="method-name">%name%</td>
>           <td>=</td>
>           <td class="context-item-value">%value%</td>
> IF:desc
>           <td width="3em">&nbsp;</td>
>           <td class="context-item-desc">゙sc%</td>
> ENDIF:desc
>         </tr>
> END:constants
>         </table>
>       </div>
> ENDIF:constants
(すんませんKShikiのタグ置換に引っかかって見られません。ソース表示なら…)

ところで私はよくこういうコードを書いてしまうのだが、
class square
  def initialize(w, h)
    @width = w
    @height = h
  end

  def get_area
    return @width * @height
  end
end
rdocだとこの場合のインスタンス変数は出力してくれない。
それが当然のような気もするし、出力して欲しい気もする。

<rdoc書き方>
http://www.kmc.gr.jp/~ohai/rdoc.ja.html

2005/10/05(水)firefoxでtarget

firefox1.0ではフレームを使ったページを作って、
<a href="****.html" target="right">
などと書いてもtargetが有効にならないようだった。targetが目の敵にされているのは知っていたので、firefoxでは打ち切ったのかと思ったが、単に1.0.7にしたら直っていた。

それにしても最早frameそのものも嫌われ者らしい。セキュリティ云々の話は分かるのだが、私のような素人にそれをいわれて、もきちんと書くためのコストより実装容易性を優先してしまう。

簡便さとセキュア・ストリクトをつなぐフリーなツールを作ってください、誰か。

2005/10/05(水)SVGを諦める

2005/10/05 08:00 情報工学
当初graphvizでSVGが吐けるので、フレームと組み合わせて出力することを狙ったが以下のような問題が発生した。
1. xlink:href="***.html#***"が動かない
2. firefoxが未対応
3. 遅い

1.xlink:href="***.html#***"が動かない
adobe viewerの問題らしい。規格書を読んだ限りの私の理解だと、出来て然るべきだというのが1つ。adobeサイトの対応情報ではよく分からなかったが、以下の情報元からすると多分勘違いでもなさそう。

http://www.asahi-net.or.jp/~uf4k-nkjm/SVG/contents/content4.html
http://dhr.at.infoseek.co.jp/svgtwo.htm

なおAdobe SVG Viewer 3.02 + IE6(Sleipnir1.66)で確認。

2.firefoxが公式未対応。
Adobeのプラグインを入れるとバグるらしい。ナイトリービルドでネイティブ実装があるということは調べたが、未対応・不具合が多そうな上ダウンロードが激重だったので諦め。

3.遅い
重遅。同一ページにsvgが複数枚存在するといつまで経っても全く表示されない。

合わせ技一本で、止め。graphvizにはpng+mapとかgif+mapで吐ける出力があったのでそちらに転向する。

Adobeのviewerなんかはもう2年もメジャーバージョンアップしてないようだが、Flashに比して有益性を感じられないのが原因?

2005/10/01(土)グラフ記述言語

2005/10/01 03:00 情報工学
PC換装作業量変更に伴い優先順位の変更。研究のツール作成に必要なので、さくさくとグラフ記述言語の調査をする。

ツール作成といっても今の状況だとJavaやWinアプリとして動かす必要もないだろう。Html+フレームなんかでそこそこ見やすく吐ければよいことにする。グラフ最適化配置アルゴリズムなんて、それこそまじめにやってたら1月かかってしまう・・・・・・

で、使えそうな物。
GraphML
GXL
SVG
GML
XGMML

う、結構java実装があるな。でもとりあえず見なかったことにする。

GXLが流行の道を進んでいるようなので多少重点的に。ノードとエッジにリンクがあって、フレームで情報出せればいいだけなんだよな。ここらへんGraphvizに読ませられそうなものもあるのだが、graphvizは基本有向グラフと無向グラフをまぜられるようにできていないのでどうなる?

(追記)
graphviz全般[dir=none]で問題なく無向エッジを引けるらしいです。じゃあwebdotでいいかな。

(追記2)
ああ勘違い。webdotはサーバでサービス提供する方だった。graphviz本体で普通にSVGが吐けてそれを見るので良い。

2005/10/01(土)作業メモ1

2005/10/01 02:00 PC(全般)
promiseコントローラーに繋いでいたドライブがRAID化していたため予定が大幅に狂う(スパンかRAID0かは不明)。

普通のIDEからはアクセス不可だが、当然このコントーラーに繋いだままバックアップを取ろうとするとデータ化けの可能性がある。放射能箱か。

ともかくドライブの中身を減らさないと動きようがないので、今後DVDで見られそうな作品(主にアニメだが)は消去。ドキュメンタリー類はどうしようもない。

消したもの総覧。

MADLAX、ファンタジックチルドレン、修羅の刻、舞-HiME、創聖のアクエリオン、エレメンタルジェレイド、爆裂天使、忘却の旋律、LOVELESS、マリア様がみてる~春~、ケロロ軍曹、サヴァイヴ、GANTZ、絢爛舞踏祭、光と水のダフネ、天上天下、鉄人28号、花右京、美鳥、レジェンズ、厳窟王、フタコイ、DearS

最初記録してなかったんでまだあるかも。