2002年3月の雑感

更新日:2002-03-31
[トップページへ] [2月] [4月] [過去の雑感へ]

3月31日()

消化

溜まったメールを消化中...。

Rubyお花見@大坂

もうちょっと川崎を早く出てれば、途中下車して、参加できていたことに今頃気づく。


3月30日()

書店にて

川崎アゼリア地下街の有隣堂書店で 『たのしい Ruby 〜Rubyではじめる気軽なプログラミング〜』(ソフトバンクパブリッシング) を1冊発見。 鞄には入りそうになかったし、荷物になるので、買うのはあきらめました。

帰りの新幹線で読もうと思って、UNIX USER 4月号を購入。

最終回

英会話入門の最終回、聴き逃がした。 トリック2の最終回は見た。


3月29日(金)

送別会(出張2日目)

たまたま出張と日が重なったということで、 一度だけ直接会って挨拶をしたことがある人の送別会に参加。 (一応、電話では何度か話したことがあります。 送別会に私が参加することは、主賓たっての希望とのことだったのですが、 なぜそういうことになったのか私には今だに謎です。)

その人と親しくなれたのが送別会だというのは、 余計に寂しいというか、 残念だというか、 納得できないというか...。 送別会が終わって、一人ホテルへ帰る途中、 ちょっと複雑な気分になってしまいました。


3月28日(木)

出張

25日と同じ類の仕事のため、川崎へ出張。 21:30 過ぎに終わってほっとした。 バックアップが終わるまでの間に、なぜかRubyの話などをする。


3月25日(月)

午前0時

まで仕事。


3月24日()

Win32OLE

昨日の余談は私の勘違いでした。

駄目だったのは

require 'win32ole'

module Worksheets
  include WIN32OLE::VARIANT
  attr_reader :lastargs
  def Add(arg0=nil, arg1=nil, arg2=nil, arg3=nil)
    ret = _invoke(181, [arg0, arg1, arg2, arg3],
                  [VT_VARIANT, VT_VARIANT, VT_VARIANT, VT_VARIANT])
    @lastargs = WIN32OLE::ARGV
    ret
  end
end

e = WIN32OLE.new('Excel.Application')
e.visible = true
b = e.workbooks.add
s = b.worksheets
s1 = b.worksheets(1)
s.extend Worksheets
s.Add(nil, s1)

としたときでした。 ということで、駄目でないようにしました。


3月23日()

このページ

あれっ。なんか消えてたみたいですね。

Win32OLE

[ruby-list:34539]の3番目に関連して思い出したことがあります。

Excel VBA には Worksheets.Add というメソッドがあります。

Worksheets.Add は

Add(Before, After, Count, Type)

と 4つの省略可能な引数を取ります。

例えば、Rubyの引数の省略とは違って、VBAでは、

set sheet1 = Worksheets(1)
Call Worksheets.Add(, sheet1)

という風に第2引数だけを指定するような書き方ができます。

これを Win32OLE(Ruby)を使って書く場合にどうするかというと...。

今のところできません。Rubyでは、第1引数を省略するような書き方はエラーになってしまうからです。 では、どうするかというと、名前付き引数(もどき)を使います。

Win32OLEでは、

require 'win32ole'
e = WIN32OLE.new('Excel.Application')
e.visible = true
book = e.Workbooks.Add
sheet1 = book.Worksheets(1)
# book.Worksheets.Add(, sheet1)           Parse Error
book.Worksheets.Add({'After'=>sheet1})  # OK

とHashを引数にして名前付き引数のような感じで呼び出すことができます。

また、Hashとして指定することができるのは最後の引数です。 ですから、引数のすべてを Hash で指定する必要はありません。例えば、

book.Worksheets.Add(sheet1, {'Count'=>2})

という書き方もできます。 この場合は、第1引数の Before に sheet1を指定し、第3引数の Count に 2を指定し、 第2引数と第4引数を省略してAddメソッドを呼び出すことになります。

もちろん、全部 Hash で指定して、

book.Worksheets.Add({'Before'=>sheet1, 'Count'=>2})

と書いても同じことです。

...なんてことをどっかに書こうと思っていたのに、いつの間にか忘れてしまったのでした。

Win32OLE(余談)

第1引数を省略するのに、せめて

book.Worksheets.Add(nil, sheet1)

という書き方ができるといいのですが、今のところうまくいかないんです。 第1引数をどう変換するのかわからなくて...。


3月22日(金)

Ruby で ネットワークプログラミング

今日は、ひたすらRubyでネットワークプログラミング。

require 'net/ftp'

とか

require 'net/telnet'

を初めて使いました。以前は

require 'ftplib'

require 'telnet'

だったんですよねえ。

Autounit

Gnu Autounitなるものを発見。

教育給付金

前回貰ってから5年経過してないと貰えないんですね。 <URL:http://www.panasonic.co.jp/imc/o_master/>より。


3月19日(火)

『だれかが彼を殺した』

どうも読んだことがあるような気がして買うのをやめたのですが、 よく考えたら、読んだことがあるのは『どちらかが彼女を殺した』の方だったみたいです。

Win32OLE

VARIANTクラスの導入というのをちょっと考えていたのですが、 ruby-win32でいろいろ検討した結果、導入するのはやめることにしました。 ところが、今日になってVARIANTを導入しませんかという英語のメールが来ちゃいました。 今から、何故、導入にいたらなかったかという経緯を説明する英語のメールを書かなくてはなりません。 大変です。

[ruby-talk:36165]では、Win32OLEが IDispatchインターフェースのみ対応しているという話題が出てます。 その通りというしか無いのですが、ruby-win32でちょっと振られた VTBL呼び出しってのを実装すれば、対応範囲が少し広がるのだなあ と思ってしまいました。

Ruby でガロア群

[ruby-math:00656]より。

4次方程式って解の公式があるんでしたっけ? いや、解の公式が存在しないことが証明されているのでしたか? うーむ。全然覚えてない。


3月17日()

Cygwin環境整備

rxvtの日本語化パッチ があることを知ったのでインストールしてみました。 フォントにはMS明朝と MSゴシックを指定できるみたいです。

Cygwinで日本語はさほど必要じゃないんですけど、 Ruby を VC++ でコンパイルするときや、Win32OLEのテストをするときに たまに日本語が使えないと不便なことがあったのでした。

inetutils + Teratermでもいいのですが、rxvtの方がやや軽快に動きます。

ついでに他のものもいろいろバージョンアップしたのですが、 grep 2.5g で、はまってしまいました。

cygintl-1.dll が無いだの、cygpcre.dllが無いだの文句を言うのです。 libintl1-0.10.40-1.tar.bz2(cygintl-1.dll) とpcre-3.7-1.tar.bz2(cygpcre.dll)を インストールしてようやく使えるようになりました。


3月15日(金)

Test::Unit

ruby-talkで、set_up か setup かの論争が。 set_up はかなり抵抗あるなあ。 と思いながら読んでいたら、[ruby-talk:35868]という意見が。 他のxUnitとは大部名前が違っちゃうけど、いいかも知れない。

そんなことより、私が Test::Unitの最新動向を把握してないというのは、 なんかかなりまずいような気がしないでもない今日この頃です。

Win32OLE のテストを Test::Unitを使って書き直してみますか。

ruby 1.7

autoconf 2.5 が必要になった理由は AC_SYS_LARGEFILE なんだそうです。


3月14日(木)

ruby 1.7

なんか autoconf 2.5が必要になってるみたいです。 ChangeLogのこれが関係してるのかも知れません。

configure.in: autoconf 2.53 support. use AC_LIBOBJ.

うん? うちのautoconf のヴァージョンは

$ autoconf25 --version
autoconf (GNU Autoconf) 2.52

だなあ。まあ、エラーも出ずにコンパイルできたからよしとしましょう。

ちなみに autoconf25 となってるのは、autoconfも残してあるから。

$ autoconf --version
Autoconf version 2.13

3月13日(水)

Perlを256倍使うための本

著者の川合さんってどっかで聞いた名前だと思ったら、YARPCつながりでした。

そうそう。思い出した。OLE-Strage_Liteを作ってらっしゃる方でした。 OLE-Strage_Liteを使うとExcelなどのファイルの読み書きがWindows環境以外でもできるようになります。 (Excel専用に拡張したSpreadsheet-(Parse|Write)Excelなんてのもあります。) Rubyに移植しようとしてダウンロードしたのですが、そのままになってます。 (Perlのコードがさっぱり理解できないのでした。)


3月12日(火)

Win32OLE

えーと。 CamelCaseやめた方がいいんでしょうか? いや。Windows API バリバリなので完全にやめることはできないんですけど。


3月11日(月)

古い話

を蒸し返すのはどうも気がすすまないんだけど、あえてメールを出して蒸し返してみる。


3月10日()

Win32OLE

標準添付へ向けてちょこっと作業。


3月9日()

『TRICK』読了

結論。やっぱり、映像の方が面白い。 ノベライズはノベライズであって原作では無いということです。

Win32OLE

WIN32OLE.bind を追加。引数には、モニカーを指定します。 例えば、次のようなものが動くようになります。

require 'win32ole'
book = WIN32OLE.bind('c:/mybook.xls')
sheet = book.Worksheets(1)
puts sheet.cells(1,1).value

今回の追加は、[ruby-talk:35344]から始まるスレッドがトリガーになってます。 で、一応

require 'win32ole'
ldap = WIN32OLE.bind('LDAP:')

というのはエラーも出ないで動いているみたいなのですが、 こっから先が(というよりも、私自身が)問題でして...。 何をどうすれば、何ができるのかさっぱりわかっていないのです。 ちょっとLDAPについて調べてみよう。


3月8日(金)

ピープルウェア

いや、まだ全部は読んでいないのですが。 電話の話とか、手順書の話とか、なんだか思い当たることが多くて、なんとも。

今日買った本


3月7日(木)

元気が足りない

なんか疲れてまして、どうも調子が出ません。 メールも溜まる一方です。

テスト

テストプログラムは、いつでも、どこでも、どんなシチュエーションでも動かないといけません。 3ヶ月経つと動かなくなったり、テストを実行するときのカレントディレクトリが違うと動かなかったり、 テストを実行するユーザーが違うと動かないテストプログラムなどというのは駄目です。 テストがちゃんと動くようになるためにテストプログラムを修正するのに4時間もかかり、 プログラムの修正が15分で終わるなどというのは論外です。 一言で言えば、テストは再現性がなくてはならないってとこでしょうか。

そして、そのようなテストを書いた3ヶ月前の自分に八つ当りしても、何も生まれないのも事実です。

日本の四大ミステリ

「匣の中の失楽」がそのうちの1つとして取り上げられるということは、あとの3つは 「虚無への供物」「ドグラ・マグラ」と...。 うーむ。もう一つが出てきません。法水麟太郎(←字が怪しい)の何かかな? 何だろう? 私は、そういうのには疎いミステリ読みなのです。


3月3日()

御手洗潔のメロディ(島田荘司 著) 読了

元々、「ボストン幽霊絵画事件」は、ポーの作品のパロディとして書かれたものでしょうか? 「さらば遠い輝き」の話に登場する御手洗潔が20年前に出会った青年というのは『異邦の騎士』のあの青年ですね。 えっ?『改訂完全版 異邦の騎士』なんてのが出てるんですか? どこがどう違うのでしょう?

全体としては、どこがどうとは言えませんが、満足できませんでした。 なんか、話があまりにもこじつけっぽいというか。

トリック2

人面タクシーのトリックは、某作家の新潮文庫から出てた長編にあったやつと同じだと思うのですが、 ストーリーも他のトリックもその作品と同じなのかどうか全く思い出せません。 長編のタイトルも忘れてます。

この番組面白いです。 先週から見てるんですけど、ツボにハマってしまいました。

sawfish (Vine Linux 2.1.5)

golemをやめました。 Icewmに戻ったかと思いきや、sawfishです。 sawfishって重いのかと思っていましたが、そうでも無いみたいです。

日付

なんかずれていたので修正。

Win32OLE (Ruby)

AmazonAnalyzerってどこにも公開されてなかったのか。 わざわざ、テスト用のデータファイルつきで直接送っていただきました。 実験してみたら、ちゃんと動きます。困った。

うん? 0.2.6を使ってらっしゃるんですか? それはちょっと古すぎます。 0.2.6だとRelease忘れのバグがある可能性が高いです。 0.4.0を試してもらうようにお願いしよう。


3月2日()

Win32OLE (Ruby)

やや。[ruby-talk:34617]のRobert C. Martin ってあのRobert C. Martinですか? Win32OLEを使ってらっしゃるんですか? ちょっとびびってしまいました。 うーむ。うまく動かないんですか。さらにびびってしまいました。 えーと。どっかで、AmazonAnalyzerを見たような気がするんだけど、見つけられませんでした。 それで、

AmazonAnalyzer ってどうすれば入手できるんでしょう?

などというメールを出してみることにしました。

例によって、OLE の Releaseし忘れのバグっぽい気がしています。 それか、途中で

GC.start

を呼ぶ必要があるのかも知れません。


3月1日(金)

いつの間にか3月

質問:私がこのページを5日ほど更新しなかった理由を答えなさい。

  1. ただ何となく。

  2. 忙しかったから。

  3. 風邪をひいて寝ていたから。

  4. 源泉徴収されていたにも関わらず、確定申告で、さらにお金を取られて憂鬱になったから。

  5. SRの会の2001年度の作品リストを眺めて、 自分がどれほど本を読んでいないかを思い知らされて愕然となったから。

国内ミステリの作品リストから

えーと。国内リストの作品のうち1冊も読んでないというのは、気のせいだと思いたいです。

泡坂妻夫「比翼」、逢坂剛「重蔵始末」「相棒に気をつけろ」、 井上夢人「クリスマスの4人」、恩田陸「黒と茶の幻想」、 加納朋子「ささらさや」、北森鴻「親不幸通りディテクティブ」「共犯マジック」、 京極夏彦「今昔続百鬼 雲」、殊能将之「黒い仏」「鏡の中は日曜日」、 西澤保彦「謎亭論処」、東野圭吾「超・殺人事件」、松尾由美「銀杏坂」、若竹七海「悪いうさぎ」。 こんなとこですか。 あとは、都築紫亜「私の!名探偵。」。なんか「モーニング娘。」みたいで気になります。

でも、何といっても、2001年の国内ミステリは、伊集院一馬「ヌサリ」に尽きるでしょう。 なんせ「ヌサリ」ですよ。「ヌサ」るんですよ。

 私は暗闇の中をただ独り歩き続けていた。何の音もしない。静かだ。そう思った
とき、何かが私の頬をヌサリとつたった。

とか。

 僕はもう一人じゃなかった。そう。僕の隣りにはいつもヌサリがいたんだ。

とか。

 わたしは、もうヌサリ無しでは生きてゆけない体になってしまっていた。だが、中
毒という感覚は無かった。むしろ空気のようなものだった。必要だけれども意識する
ことも感じることもない。そこにあって、それが当り前であるようなもの。それがヌ
サリだった。
 ひょっとすると、そのときのわたしは、中毒を通り越して、もっと危険な状態にあ
ったのかも知れなかった。

とか。なんかいろいろ想像してしまいました。 というわけで今回の国内マイベストは「ヌサリ」で決まりです。

...。すいません。 お察しのとおりです。 国内ミステリを1冊も読んでいないのは、紛れもない事実です。 「ヌサリ」も読んでません。 もちろん投票はしません。 「ベストイマジネーションタイトル賞」を自分で勝手に作って、 「ヌサリ」に投票するという不埓なことはこれっぽっちも考えていません。


[トップページへ] [2月] [4月] [過去の雑感へ]