2004/11/07(日)Ruby offline mode
2004/11/07 03:00
結論から言ってしまえば、Unix環境等だとCtrl+Dなのだが、Win32環境だとCtrl+Z Enterとする必要がある。
以下、再現する状況。
CGIを作る時にtest.cgi?a=bという風に引数を指定出来る物を作りたいとする。
そうすると、require 'cgi'で、params = CGI.paramsとするのが一般的だが、これを記述するとconsole実行ではofflineモードとなり先に進めなくなる場合がある。
2004/11/06(土)Eclipse3.0.1 日本語化
2004/11/06 00:00
Eclipse展開、Language Pack展開の順で普通に問題ないのだがLanguage Packが少々特殊なZIPファイルのようでアーカイバによっては(NG:春M OK:詩子さん)解凍に失敗し、出力ファイルが0byteになる。
さらに、正常に展開できた場合でも事前にEclipseを起動してしまっていると中途半端な日本語化になる(ex.ソース -> Source)。これは、configurationフォルダの削除で直すことが可能。
2004/09/02(木)Rubyリファレンスの歩き方
2004/09/02 02:00
・オンラインの公式
http://www.ruby-lang.org/ja/man/
しかしこいつは何かおかしい。下記のデスクトップリファレンスなどではちゃんとしている
Array[num] = 参照
Array.last = 値が返る
の区別が明確でない。
まつもと氏はどうもドキュメントに大きなこだわりがない、無いのだが書くなら彼。
どうもここら辺が悪循環を生んでいるのでは無かろうか。
見づらいのは欠点ではあるが、スタイルシートでどうとでもいじれる。
たぶんスクリプトを書けば、下記のミニリファレンスのような物も作れるに違いない。
そんな時間がないのが問題だが。
・[書籍]オブジェクト指向スクリプト言語Ruby
http://www.amazon.co.jp/exec/obidos/ASIN/4756132545/250-1592688-1197862
巻末のミニリファレンスが索引としては非常に使える。ところが、正リファレンスが此処には載っていない。
・[書籍]Rubyデスクトップリファレンス
http://www.amazon.co.jp/exec/obidos/ASIN/4873110238/ref=pd_bxgy_text_2/250-1592688-1197862
情報が正確。ただし、簡易すぎる点と機能引き索引等が恐ろしく弱い。見づらいのも欠点か。
・[書籍]プログラミングRuby
http://www.amazon.co.jp/exec/obidos/ASIN/4894714531/250-1592688-1197862
各項の見やすさはピカ一。索引性がないのはデスクトップリファレンスと同様。
書いてある内容は、オンライン程度か? Arrayのところはちゃんと調べてこなかった。失敗。
さあて、いろいろ悩んでみたがどうもいけない。日本Rubyの会も発足したようだし、しばらく待ってみるのが吉だろうか。少なくともPerlよりは遙かに使いやすいのだから、待っていても損はないだろう。
2004/09/01(水)PCastにtvpiを送るときに?
2004/09/01 05:00
気づいてみりゃ、当たり前の話なのですがコマンドライン上でこうならなきゃいけなかったわけで。
みやすいように簡略化して、
PCastTViEPG.exe "program.tvpi"
これをプログラム中で書いたときに
exec('PCastTViEPG.exe ' + ARGV[0] )
としておりました。が、ARGV[0]がちゃんと出る云々ではなくコマンドラインそのものに""を出現させる必要があったわけです。すなわち、
exec('PCastTViEPG.exe "' + ARGV[0] + '"')
こう書かなきゃいけなかった。
引数にspaceとかなければダブルクォーテーションは要らないのです。で、そこでなまじ通ったから迷宮にはまりました。
ばかばかしい。
2004/09/01(水)rubyでレジストリをいじるには
2004/09/01 05:00
- RegRead
- RegWrite
2004/09/01(水)rubyコンパイラ
2004/09/01 05:00
ドキュメントがやたら古くて、現バージョンとまるで整合性がないのが欠点ですが、意外とコンパイルはあっさりいきます。
Makefileにあたるレシピファイルなるものを書かなければいけないのが面倒と言えば面倒。ソースに含まれる、exsampleを参考にしよう。
cuiだとDOS窓でます。Guiだと出ません。apolloとも連携可のよう。
requireがある場合レシピファイルに追加が必要みたいです。試してません。
#紹介系の記事はなんでですます調に成っちゃうんだろう?
2004/09/01(水)RubyでDOS窓を表示させないようにするには?
2004/09/01 05:00
かーんたーん!
2004/08/31(火)doxygen スタイルシート
2004/08/31 01:00
書き換えたdoxygen.cssはc:\online\doxygen\に置いた。
これを指定してdocumentを作る場合は、設定ファイルに
HTML_STYLESHEET = c:\online\doxygen\doxygen.cssを指定する。
H2 {
   padding: 0px 0px 2px 4px;
   font-family: Geneva, Arial, Helvetica, sans-serif;
   color: White;
   background-color: DarkBlue;
}
グループセクション名が目立たないので、反転系に。
.mdescRight {
padding: 2px 8px 4px 20px;
   font-size: 12px;
/*   font-style: italic; */
   background-color: #FAFAFA;
   border-top: 1px none #E0E0E0;
   border-right: 1px none #E0E0E0;
   border-bottom: 1px none #E0E0E0;
   border-left: 1px none #E0E0E0;
   margin: 0px;
}
目次部の簡略説明がどうにも見にくいので、文字小、イタリック無し、paddingで偽インデント。
b {
   border-bottom: 2px Solid MediumSlateBlue
}
dd {
   padding-top: 6px;
}
em {
   color: #BB0000;
   font-style: normal;
   font-weight: bold;
}
上記は相当強引。<b>は"引数"、"返り値"などの見出し用。太めのアンダーライン付加。
<dd>は"引数"等の説明用。上の見出しとちょっと離した。
<em>は引数名のピックアップ用。斜体になって見づらかったので、濃いめの赤、普通字体、強調表示とした。
スタイルシートってこの程度しかできないんだっけか。勉強不足だな。うーん。
2004/08/31(火)doxygenあれこれ
2004/08/31 01:00
とりあえず、当面我が家でのコメントの書き方。
//! ジャンル判定2(曖昧) (*! @par 指定文節のかっこを除去した文字列が、あらかじめ読み込んでおいたGenreList中の文字列に”含まれる”かどうかを判定する。 @param id [in] 文節番号 @return 含まれるならばTrue、そうでないならFalse *) procedure / function...
重要なのはここらあたりだろう。出来れば詳細ブロック内でもHTMLタグは書きたくない。
どちらがメジャーか分からないが、JavaDocよりはQtスタイルで良し。
参考: http://members.at.infoseek.co.jp/sakura_editor/comment-rule.html
引数には、[in],[out],[i/o]を書けという指示があったがデファクトだろうか? (doxygenではピックアップされない)
ところで、関数説明部のタグは<dl compact>となっている。そのため、短いパートによっては行変えが行われないなどなんかいまいちな仕様。compactは推奨されないはずでは? ソースのhtmlDocVisitor.cppをいじれば何とかなりそうではあるが、やりたくない以上に今コンパイル環境がない。まあ、やりたくなったら。あ、BCBでいけるか?
さて、スタイルシートもいじったのだが、長くなりそうなので次項に回す。
2004/08/30(月)doxygen + Delphi
2004/08/30 00:00
Delphi(Object Pascal)のソースをdoxygenでドキュメント化させてみようと思い立つ。
doxygenはデフォルトではpascalのソースに対応していないが、pas2doxというツールがある。こいつはpascalのソースをCっぽいソースに変換してくれる。あとはdoxygenに渡すだけである。
ところが、単体のファイルをコマンドラインでちまちまやるとできるのに、doxygenに一括で処理させると上手くいかなかった。設定ファイルの書き方に注意が要る。
以下、上手くいったときのdoxygenファイル抜粋。
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = d:\renamer
FILE_PATTERNS = *.c \
*.cc \
*.cxx \
*.cpp \
*.c++ \
*.java \
*.ii \
*.ixx \
*.ipp \
*.i++ \
*.inl \
*.h \
*.hh \
*.hxx \
*.hpp \
*.h++ \
*.idl \
*.odl \
*.cs \
*.php \
*.php3 \
*.inc \
*.m \
*.mm \
*.pas
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER = c:\online\doxygen\bin\pas2dox.exe
FILTER_PATTERNS =
FILTER_SOURCE_FILES = YES
FILE_PATTERNSに*.pasを追加し、FILTER_SOURCE_FILES = YESにする。注意点は、INPUT_FILTER, FILTER_PATTERNSに関して。
・INPUT_FILTER
コマンドパスを書くときに、""(ダブルクォーテーション),クォーテーション無しはOK。''(シングルクォーテーション)は×。
コマンドはフルパスで書く必要がある。(doxygenのフォルダ)/binに置いても、フルパスでないとダメなようだ。エラーメッセージ出せよ……
・FILTER_PATTERNS
新しいオプションのようだ。*.pas、"*.pas"等指定してもうまくいかない。
d:/renamer/FileNameAnalyze.pas:23: Warning: Found ';' while parsing initializer list! (doxygen could be confused by a macro call without semicolon)というエラーが延々出てしまう。軽く調べてみたが、書き方のサンプルも見つからない。機能していないのだろうか? 今のところ、空白にしておくのが正解のようだ。