10月の雑感

トップページへ

10月31日(

本日の cmail.
ちょっとだけ環境を整えてヘッダー部分の表示を簡潔にしました. 今までは何も設定していなかったので,ヘッダーが全部表示されてました.

.emacsにファイルに

(setq cmail-ignored-headers "^[A-Z]")
(setq cmail-always-shown-headers "^From:\\|^Subject:\\|^Date:")

と書いておけば,From と Subject と Date で始まるヘッダー部分だけ表示されます.

じょじょに快適な環境になりつつあります.


10月30日(

間違ってここ一週間ぐらいの自分宛にきた電子メールを すべて削除してしまいました. しかも内容を読まないで.当然返事も書いてません. 私が悪いので言い訳はしません.

10月23日から10月30日にかけて CQN02273 at nifty.ne.jp 宛にメールを送ってくださった方のうち, 馬鹿な私を見捨てずにいてやろうじゃないかという寛大な方は 再送してやってください. (そこまでする必要のある重要なメールは無いと思いますが)

このページも開設してから半年が経過しようとしています. せっかく開設するんだから,自分にしか書けないことを書こうと思い, 書き始めたのが 『win32ole の製作過程に関する雑記』 でした.

例えば,Ruby スクリプトの書き方とか,Windows プログラミングのこととか Linux のこととか,ミステりーのこととかいろいろ考えたのですが, 私よりもわかりやすく面白く書ける人はいっぱいいるだろうから 私が書かなくても良いだろうと思った訳です.

ですが,win32ole の製作過程に関する雑記 だけは 世界中探したって私にしか書けません. 読んで面白いかどうかはわかりませんが, 少なくともこのサイトでしか読めない情報であることだけは確かです.

win32ole にはドキュメントも無かったので ドキュメントに代わるものを何らかの形で残しておく必要性を感じていた というのもありました. (だから『基本方針』など他人にとってどうでも良いことが多く書いてあるんですね.) またひょっとしたら誰かが拡張モジュールを書くときの参考になる部分も あるかも知れないというのもありました.(あまり参考にはならないでしょうが.) ですが,何より 誰がどう考えようと私が書きたい (←これが一番重要)と思ったというのもあります.

今後もこんな感じで書きたいこと・伝えたいことを 自由に書いていけたら良いなあと思ってます.

トップページについていたカウンター外しました.邪魔だと思ったので. 私が他のページ見に行く場合,内容を気にするのであって, カウンターの数は関係ないです. で,結局自分しか数を気にしてないような気がしたので, 他の人にとって邪魔なんじゃないかと半年経ってやっと気づきました.(←気づくのが遅すぎる) という訳で外します.

ただし別の形でカウンターが登場させるかも知れません. Nifty でも来月から CGI が使えるようになるらしいので 自分でカウンター作って実験するのに登場するかも知れません. 1回アクセスすると1,10,100,1000,10000と1桁ずつあがるカウンターとか. ランダムな数字を表示するカウンターとか.

半年経過を前にしていつもと違う感じになっちゃったなあ. メール削除してしまってブルーだからか.Ruby 本もまだ手に入れてないし...


10月28日(木)

Ruby の本入手した人結構いるんだろうなあ. 私はまだです.

入手するまでの寂しさ(?)をまぎらすため, 中断していた 『実用 Perl プログラミング』をまた読み始めました (Ruby ユーザーから「裏切り者」の声が・・・)

この本を読んで Perl のオブジェクト指向ってなんか巧妙なトリックの上に 成り立っているということを知りました. (中断する前に読んだので,もうすっかり内容は忘れているのですが, なんか巧妙なことをやっているなあと思ったことだけ覚えてます.)

Perl を使う気はまったく無いのですが, この本には Perl の裏のからくりみたいなことが書かれているし, XS の解説もあって(OLE.xs を読んで win32ole に利用するときの) 参考になるのではと思っています. (Perl ユーザーから「スパイ」の声が・・・)


10月26日(火)

なんかむちゃくちゃ眠い1日.

昨日の夕方には無かったらしいですが, 今日の昼には大阪の書店にも Ruby 本が置いてあったそうです.


10月25日(月)

まだ風邪が治りきらないです.

ついに Ruby 本が書店に並んだようです. 近所の書店には置いてないので, 大型書店まで行くか注文するかしないと入手できません. 今月中は無理としても来月中には何とか入手できるかな. ・・・年内には手にできるだろうな.

本日の RubyWin.
ARGV を空っぽの状態にするのに

rb_eval_string("ARGV = []");

とやって ARGV に文字列を追加するのに

rb_ary_push(rb_argv, rb_str_tainted_new2("hoge"));

とやっても ARGV は空のままなのです. ARGV を空にするのではなくて rb_argv を空にしないといけないようだと いうことに気づくのにちょっと時間がかかりました.

ARGV は最初 rb_argv を参照しているが 'ARGV = []' を実行すると ARGV の参照先が rb_argv から '[]' に変わる. その後で rb_argv をいくら変更しても ARGV は '[]' を参照するので空のまま である.

という風に私なりに解釈しました.(私の言わんとするところの意味わかります?)

ともかく rb_argv を空にすれば良さそうだということなんですが rb_argv を空にする方法がよくわからんかったのでこうやって逃げることに.

rb_funcall(rb_argv, rb_intern("clear"), 0);

(どういうことだか意味不明でしょうが) ということで ARGV を指定してスクリプトを実行できるようになりました.

Windows は非常に良くできてまして '*.txt' というのを コマンドラインの引数に指定しても 何もしないでそのまま '*.txt' を渡してくれます. '*.txt' にマッチするファイルを引数にする処理は Ruby の方で行っています. (これは Windows に限った話で,Unix では '*.txt' にマッチするファイルが 渡されてきます.Unix ではシェルがファイルを引数にする処理を してくれているのだったでしょうか?) という訳で RubyWin でも ARGV に '*.txt' を指定された場合には, マッチするファイルを ARGV にセットするように

WIN32_FIND_DATA fd;
HANDLE fh;
if ((fh = FindFirstFile ("*.txt", &fd)) == INVALID_HANDLE_VALUE) {
    return;
}
do {
    rb_ary_push(rb_argv, rb_tainted_str_new2(fd.cFileName));
} while(FindNextFile(fh, &fd));

てな感じのことをやってます.

と言う訳で参考になりましたでしょうか?(誰に聞いとんねん???)


10月24日(

金曜日の RubyWin の件は, まつもとさんの了解を得られました.良かったです.

本日の Linux.
Linux 環境での電子メールの環境を整える. cmail + IM の環境にしようとちょっと格闘. imput にメールヘッダ部分から送信先を自動認識させて 送信する方法がわからないので結局あきらめる. (ええ.そうですとも.ろくにマニュアル読もうとしない私が悪いんです.) Ruby で net/smtp.rb を使って適当なスクリプトを 書いて送信するようにしてみる. 送信もできるようになったみたい (受信の方はちょっと前に net/pop.rb を使って Ruby で作っていた) なので,これで

ということになります. 後は

ができるようになれば Windows 95 環境を使うのは RubyWin と Win32OLE のメンテナンスだけか.


10月23日(

デデキントの切断というのは, 実数の定義となんか関係あったかなあ. 有理数の切断で実数を定義するとかそういう話だったか. ・・・記憶があやふやです.

本日の Ruby.
Ruby 1.5 では名前付き引数がサポートされるとかされないとか. 名前付き引数がサポートされるとすると どのように実装されるのかが気になります. Win32OLE 拡張モジュールで使っている OLE Automation には 最初から名前付き引数が利用できるようなからくりが用意されています. この OLE 側のからくりと Ruby 側とをスムーズに結び付けられるかどうか 気になっているわけなんです.


10月22日(金)

C++ 専用のヘッダーファイルを

#ifdef __cplusplus
extern "C" {
#endif
  ・・・
#ifdef __cplusplus
}
#endif

で囲むのはやめて欲しい.

本日の RubyWin.
この前の土曜日に出した私の質問に対するまつもとさんの回答を試すことに. まつもとさんの回答は日曜日に受け取っていたのですが, その回答にあったまつもとさんの疑問に対する返事だけはしたものの 肝心の回答を試してませんでした. 返事のメール書いている時点で既に風邪でへろへろだったし Ruby のソースを変更して rubymw.lib と rubymw.dll を作り直す必要が ありそうだったので.

結果は,ruby_nerrs を export するように Ruby のソースを一部変更して Ruby からコンパイルし直せば OK. Ruby 本体側で export してもらうように頼んでみよう. あっ.node.h の変更を頼むのも忘れてる.

RubyWin 専用に Ruby に含まれるソースファイルを変更して別ファイルとして 管理するのは どんなことをしてでも 避けたいのでした. そんなことすると Ruby のバージョンアップの度に私の作業が発生するので.


10月21日(木)

C++ の1本のソースの中に new と malloc を混在させるのはやめて欲しい.

本日の読書.
『高く孤独な道を行け』(ドン・ウィンズロウ 著)を読了.
ニール・ケアリー物. 前作よりも良かったですが,なんか予定調和的ハッピーエンドなところがちょっと. 書き出しの一文で引きずり込むうまさは相変わらずです. で,この作品の感想はおいといて(笑), キタリッジ会長の存在が妙に気になってます. キタリッジ会長が次の作品あたりでもっと表舞台に出て来るんではないかと 思うのは私だけ? キタリッジ会長とニールが敵対するような展開があるのではと思ってます. (根拠の無い無責任な想像です. たとえ原書でそういう展開があったとしてもそれは偶然です.)

本日の Ruby.
Ruby 用の Informix 拡張モジュール inforuby に再挑戦.

まだ inforuby がこの世にない頃, 実は この作者さんが Ruby の ML で 「Informix 用の拡張モジュール欲しい人がいれば作ろうと思うのですが?」 と発言されたときに 「欲しいです.お願いします.」と反応したのは私ぐらいなものでした. (前回失敗したときのように 「私も作ろうかと・・・」などとは間違っても発言しませんでした. 私もちゃんと学習してます.) この前初めて inforuby に挑戦して駄目でしたと報告したら,アドバイスを頂いたし, お願いした手前,ほっとく訳にもいくまいと思い,再挑戦することにしたのでした.

Makefile をごちゃごちゃいじってコンパイルができました. おそるおそるサンプルを実行してみると見事に動きました. これで,前回 inforuby に挑戦して駄目だったときに 「駄目でした」と(そのまんま)報告しただけでしたが, 今度はうまく行きましたと作者さんに報告できます.よかったよかった. 仕事で使う場面もありそうです.めでたしめでたし.

喉痛いです. 会社にいるときは何ともなかったのに帰りには激しい頭痛が. 家まで遠いこと遠いこと.


10月20日(水)

結局風邪で2日休んで今日から出社. でもまだ調子悪くて,へろへろ. 1日が長かった.


10月17日(

風邪でへろへろです. 急激な温度の変化には見事についていけませんでした. 本格的に調子悪くなってきたので午後から布団敷いて寝ることに.


10月15日(金)

暑いです.今週末から涼しくなるようですが. 急激な温度の変化にはついていけないので手加減してください. (誰に頼んでいる???)

いろいろ手を加えている途中の RubyWin にはバグが見つかりますが VC ++ も負けじと異常終了してくれます.いい勝負です. 既に開発ツールとして互角か(笑)


10月12日(火)

日没がずいぶん早くなりました.そのわりに,なんか暑いです.


10月10日(

Python 用のエディタ Eim というのを昨日知ったので インストールしてみました. Eim の方が RubyWin よりもかなり進んでいるのですが,目指している方向とか 内部の作りとかは,RubyWin に近いものを感じました.

本日の VC++.
なんかしょっちゅう VC++ が凍りついてます. デバッガに頼らず,基本に戻って机上デバッグしろという教育的配慮でしょうか? (笑) デバッガに頼るレベル以下のプログラムを私が書いているということでしょうか? (笑) VC ++ が固まるといずれ Windows 95 が固まると予想して先手を打ってリブートしてます. 開発効率が無茶苦茶悪いです.


10月9日(

仕事は午前中で無事に終了.

『ブラックライト』(スティーヴン・ハンター 著)を読了.
下巻は一気にスピーディーな展開. 上巻はちょっとしんどかったですが下巻に入ってから面白かったです. 下巻は傑作.

『ボビーZの気怠るく優雅な人生』(ドン・ウィンズロウ 著)を読了.
軽快なテンポで一気読みしてしまいました. このテンポの良さはニール・ケアリー物にも通じるものがあります. キットとティムのやりとりが良いです.傑作じゃないけど佳作.


10月8日(金)

『この町の誰かが』(ヒラリー・ウォー 著)を読了.
うーん.犯人は意外でしたが.この犯人はフェアなんですか? ちゃんと犯人を指す伏線があるんでしょうか? そういう読み方をしてはいけない小説なんでしょうか? 謎解きを期待して読むと期待外れかも.

えっ? 明日ですか? 三連休の初日なのに. いや.確かに旅行に行く予定とかないですよ. あっ. 明日は年に一度か二度あるかないかの食堂が 休みの日じゃないですか. 絶対に仕事は午前中で終らせましょう.


10月6日(水)

本日の読書.
『ブラックライト』は中断して,『この町の誰かが』を読むことにしました.

本日の RubyWin.
なぜ?,なぜ?,なぜ? どうして,どうしてなんだよう. ちょっとデバッグしたかっただけなのに. そりゃ私の書いたプログラムが間違っているんでしょうよ. だからって,何も Developer Studio もろとも固まらんでもええやん. とどめはブルー画面で,OS もろともですか. ・・・疲れたから今日はさっさとやめにします.


10月4日(月)

本日の読書.
『ブラックライト』(スティーブン・ハンター)上巻をやっと読了. 傑作らしいですが,今のところそれほど面白いとは思わないです. どのくらい面白くないかというと, 続けて一気に(この「続けて一気に」がポイント)下巻を読もう とは思わないくらい面白くないです. でも下巻を読むのを止めようと思う程ではないです. 単に私の好みじゃないからでしょう.

本日の雑誌.
付録の CD-ROM の誘惑に負けて C マガジンを購入. 来月号も Ruby Workshup の記事の誘惑に負けて買ってしまうでしょう.

本日の文庫本.
一作目は面白かったけど二作目はつまらなかったのでどうしようかと 迷っていた『高く孤独な道を行け』(ドン・ウィンズロウ)を思い切って購入. 同じ作家の『ボビーZの気怠るく優雅な人生』も一緒に.
あっ.ヒラリー・ウォーの『この町の誰かが』を発見. ヒラリー・ウォーって懐かしいですね.久しぶりじゃないですか. この作家も最初に読んだ『失踪当時の服装は』が面白くて 次に読んだ『事件当夜は雨』はつまらなかったのだけど, 結局,懐かしさに負けて購入.
『ブラックライト』下巻は後回しか?


10月2日(

風邪も治ったみたいです.

なんか RubyWin は,機能を1つ増やすたびにできないことが 2つ3つ増えているような気がします. で,それがなかなか簡単には行かない. MFC に遊ばれてます.


10月1日(金)

10月になりました.Ruby 本早く出ると良いなあ.

衣更えです. ですがまだ暑いので15日までは夏服冬服併用期間だそうです. それを知らずに冬服で1日過ごした私は,確かに暑かったです.


トップページへ