2001年1月の雑感

[トップページへ] [2000年12月へ] [2月へ]

1月31日(水)

絶不調

全然進まない。どないしよう。

RubyWin

ということで現実逃避して、 わたなべさんのパッチをちょっと変えて取り込む。 これで、DATAも定義されるはず。

IRB on RubyWin

この間からRubyWinのIRBの起動が遅くなったような気がしていた。 試しにDOSプロンプトからruby irbで起動したら同じくらい遅かった。 今は気にしないことにしよう (本当はせっぱつまっているのでRubyWinの相手をしている場合ではない)。


1月29日(月)

極道編

という訳で正誤表を用意しました。


1月27日()

RubyWin

バグが見つかったので rubywin-0.0.2.5.zip。

IRB以外でもスクリプト実行中にいきなりRubyWinを終了するとSEGVします。 例えば、gets 使って入力待ちの状態にしといて終了するとか。 公開当初から気づいてたんだけど、ずーっと解決できないままなんです。

極道編

届きました。早速確認。やっぱり間違ったままだ。

しかし、本の出版までとうとうすべてメールだけで済ませちゃいましたねえ。 (まだ出版社の誰にも会ったことがありません。)


1月26日(金)

RubyWin

という訳で統一した名前になった最初のバージョン rubywin-0.0.2.4.zip です。

それからわたなべさん、ありがとうございます。bmingwでコンパイルできました。

IRBにしろ、putcにしろどこまでオリジナルのRubyに近づけるか、限界に挑戦って感じだ。 (でも限界は、限界として存在する。)


1月24日(水)

Win32OLE

ole_method_helpで取得する引数の情報をそれっぽくしてみる。


1月22日(月)

名前

うーむ。物の見事にばらばらですね。 次から統一します。 "src"の文字は外すことに決めました。 これがあるから余計ややこしくなる。

次は rubywin-0.0.2.4.zip にします。

Win32OLE

Excel使ったテストスクリプトを書いた。 やっぱりテスト無いよりずっとまし。

最低

原稿に誤植発見。 もう差し替えられないし、そのまま書店に並ぶよなあ。 人の名前を間違えるなんて最低だ。

極道編2章の Ward Cunninghanm は Ward Cunningham の間違い。


1月19日(金)

bmingwパッケージ

Scintillaが理由と書いたけど Scintillaは、'gcc -mno-cygwin'でコンパイルできそうだ。 できないのはRubyWinの方みたいだ。

RubyUnit

例えば

class TestFoo < RUNIT::TestCase
  def test_foo1
    @foo = Foo.new
    assert(@foo.bar)
  end
  def test_foo2
    assert(@foo.bar)
  end
end
RUNIT::CUI::TestRunner.run(TestFoo.suite)

というテストがあったとしましょう。

このときtest_foo2はErrorになります。それは、@fooが未定義だからです。

RubyUnitでは、"test"で始まるメソッド1つにつき1つのテストオブジェクトができます。

上の例だと、

の2つができます。

実際のテストは、こんな感じで動きます。

testfoo1 = TestFoo.new('test_foo1')
testfoo2 = TestFoo.new('test_foo2')
testfoo1.test_foo1  # test_foo1のテスト
testfoo2.test_foo2  # test_foo2のテスト

従って、test_foo1@fooと、test_foo2@fooとは別ものになります。 つまり、test_foo1で、@fooの状態をどんな風に変更しようと、 test_foo2@fooには何の影響も与えないのです。

ということで、京都のConferenceで

test_foo1を実行した後、(test_foo1の実行中に@fooの状態が変化しているかも知れないので)test_foo2を実行する前に@fooを初期の状態に戻す必要があるか?」

という質問を受けて「その通りです。」と私は答えてしまったのですが、 あれは間違いでした(確かに未定義になるので何らかの形で初期化する必要はあるのですが)。

あのとき質問して下さった方、また、聴きに来て下さった皆様、どうもすいませんでした。

今頃、気づくって遅すぎるよなあ。


1月18日(木)

Mingw版 Ruby

Cygwin 1.1.7だと-mno-cygwinオプションをつけてコンパイルすれば、 Mingw版Rubyができるらしい。 そういえば、わたなべさんの日記にもそんなことが書いてあったような...。

という訳で早速cvs updateで更新したRuby 1.6.2(2001-01-10)で実験。

autoconf
env CFLAGS=-O2 CC='gcc -mno-cygwin' ./configure --enable-shared i386-mingw32
make

おお。見事にできましたよ。 ちなみに私のところでは、わたなべさんのbmingwパッケージも入れてあるので、

env CFLAGS=-O2 CC='gcc -bmingw' ./configure --enable-shared i386-mingw32

とやってもできるし、Mingwの方にPATHを通してMingwのgccが動くようにすれば

env CFLAGS=-O2 ./configure --enable-shared i386-mingw32

でもできる。


1月17日(水)

Excel 97 SR2

これって有名な仕様なんでしょうね。 "01"年は平成1年だそうで。

Win32OLE

Win32OLE の RubyUnitによるテストってどう書けばいいのか? OS限定じゃなくて、インストールされているソフト限定のテストになっちゃうからなあ。

テスト用OLEサーバープログラムを作ればいいのかも。 (それで果してテストになるのかどうかが、かなり微妙な気もしますが。)

ちなみに以前調べたとき、Perlは、Excelがインストールされてることを 前提としたテストになってました。

OLEの参照カウンタ

を求めるには、どうすればいいんでしょう?

わからないので、

AddRef

してすぐに

Release

するという姑息な手段で求めてます。


1月16日(火)

Win32OLE

NTでもちゃんと終了しちゃうよ(涙)。 手元にある最新版だと大丈夫なのか??? 手元のやつを整理して、さっさと公開しよう。


1月15日(月)

Ruby プログラミング

必要にせまられてちょっとだけRubyプログラミング。 今回は使い捨てのスクリプトなので、RubyUnitは使わず。

というつもりで作っておいて結局、何度も使うという場合もありますが、 今回は絶対そういう状況に陥りたくないです。

Win32OLE

サーバー側のプログラム送ってもらったのでテスト。 やっぱり95だとちゃんと終了しちゃうよ(涙)。

実は、OLEサーバーのプログラムをコンパイルしたのは生れて初めてだ。

『プログラミング作法』

読み終えました。 なんかテストとプログラミングは並行してやるとか、 プログラムはわかりやすく書くべきとか 結構XPと共通する部分があるように思いました。


1月14日()

cygwin

バージョンアップ。1.1.7にする。gccも2.95.2-6に。 しかし、Cygwinは本当にb20.1の頃と比べて格段に安定動作するようになりました。 早速Rubyをコンパイル。コンパイルは問題ないみたいだ。(make testまで確認)

bmingw

わたなべさんの bmingw package もついでにインストールしてみる。

  1. cygwinのsetup.exeを使って、cygwinをインストールする。

    ただし、わたなべさんによると、tar-1.13.18-2.tar.gzは、シンボリックリンクが駄目らしいので、tarは古いバージョンをインストールする。

  2. cygwinを起動して、

    cd /usr
    tar zxvf bmingw-20010106.tar.gz
    

    とする。

Rubyをコンパイルしてみたところこっちも問題無し。(make testまで確認)

Scintilla と bmingw

gcc -bmingw に乗り換えてしまいたいのですが、 残念ながらScintillaがコンパイルできないため、Mingwも残してます。 まあヘッダーファイルが足りないだけじゃないかと思いますです。 根性無しなんで自分でヘッダーファイルを何とかしようという気はさらさらありません。 MingwとCygwinと見比べればいいと思うのだけどそれすらやる気が無いらしい。

Win32OLE

直接メールがきたやつは、とりあえずサーバープログラムを送ってくれるそうだ。 これで私のところでもテストできるかな。

Ruby

1.7はVine Linuxでコンパイルだけしてます。 で、M17N版?はコンパイルもしてません。 しばらくは、1.6系を中心に使います。


1月13日()

Win32OLE

別件でまたWin32OLEが動かないというのが...。

私がまったくOLE(COM)を理解してないし、 英語だと表現力がなくて、 ろくに返事を書けないのが情無いところです。

MSXML2って私の環境だと無いっていわれる。 試しにMSXMLでやってみたらエラーは出ないけど、 ちゃんと動いてないみたいだ。 何かバージョンアップしないと駄目?

Win32OLEってこういう点で厄介だよなあ。 同じバージョンのソフト(OLEサーバー)が無いと、うちじゃテストできんし手も足も出ない。

直接私宛のメール(こっちも英語)でも別件で動かないというのが1通。 なんかまだ、Releaseし忘れがあるみたいだ(泣)。

antiword

antiwordなるソフトを 知ったのですが、日本語には対応してないのかな。 試しにコンパイルしたけど、今のところ家では読みたいMS-Wordの文書が無いことに気づいた(笑)。

cygwin

そろそろcygwinバージョンアップしようかな。 1.1.4のままだし。


1月12日(金)

ruby-talk

なんか知らない間にruby-talkを複数のMLに分割しようかという話が出てきているようです。

半端な量じゃないですからね。 1週間も読まないと、ほんと、エラいことになります。

全くついていけないので、ruby-talkをやめようかなと考えたりするのですが、 たまに自分に関係する話題が出てくるんで、やっぱりこのままにしておこうかなとも思う今日この頃です。

でも、私がメールを読む前に、 Win32OLEが動かないという問題は解決してるし、 RubyUnitのsetupとかteardownの使い方も説明されてるし...。

RubyWinのタブ幅は指定できるようにした方がいいんだろうなあ。

まあ、私の場合、日本語のMLでもついていけないという点では同じような状況ですが。

それだけRubyも広まってきているという点では、望ましい状況かも知れません。 その昔、PerlのML(具体的に何だったか忘れました。)や、 Windowsプログラミング関係のMLに参加したことがあったのですが、 あまりの量の多さにすぐにやめました(一週間もたなかった)。 そういったMLと同じような状況になりつつあるということは、それはそれでいいことではないかと。

同じように、書籍や雑誌の記事もたくさん出て、追っかけきれなくなる状況もいいんじゃないかと思ってます。

あっ。でも、自分に関係のある話題ですら追っかけきれないというのはかなりまずいか。


1月7日()

XP-jp

年末にまとめ送りにしようと

# matome 31

としたら、なんかエラーのメールが届いた。 まあいいかと思ってそのままほっといたら配信されなくなっていたらしい。 でもって、一体どういう状態になっているのかと思い

# status

と送ったら、返事が届かないで、普通に配信されるようになったみたいだ。

...

まあ、いいか。

pcl-cvs

使い始めました。 馴れると結構使いやすそうな感じなんですが、使い続けないとすぐ使い方を忘れそうです。 あと、ちょっと見た目が寂しいように思います(笑)。

cvsのフロントエンドになっていて、 裏でどんなコマンドを実行しているのか画面に表示されるのがいいです。 これをちゃんと調べれば、cvsのコマンドとかオプションとかの使い方の参考になりそうです。

そういう訳で、今のところ(自分が使う分には)用が足りているので、 CVSの本を買ってCVSの使い方の勉強をするのは、さらに延期しようと思います(笑)。


1月6日()

pickaxe book

Dave と Andy の Programming Ruby は、pickaxe book と呼ばれているらしい。 つるはし本。なるほど。


1月4日(木)

仕事始め

今日から仕事。


1月3日(水)

正月

Acrobatreaderを起動したり、xpdfを起動したりして過しました。

風邪

結局、治りません。21世紀まで持ち越してしまいました。 症状は大したことありませんけどね。

読んでない(読んでいる途中)本リスト(順不同)

今世紀中に読むようにしましょう。


[トップページへ] [2000年12月へ] [2月へ]