2002年7月の雑感

更新日:2002-07-31
[トップページへ] [6月] [8月] [過去の雑感へ]

7月31日(水)

天啓の宴

結局のところ、『天啓の宴』も読んでいないという結論を出しました。


7月29日(月)

RubyWin

バグがあったので修正。

保存していないファイルがあっても、終了を選ぶと問答無用で終了するようになっていました。 ScintillaをバージョンアップしていたのにScintillaの obsolete APIを利用していたのが敗因です。

それにしても、このようなバグを誰も指摘しなかったということは、 使われていないのか、作者にバグレポートを出すだけ無駄だと思われてるか どちらかでしょうね。

ホラーミステリ

SFミステリがSF的設定とミステリの謎解きが不可分に結びついている作品だとすれば、 ホラーミステリは、ホラー的設定とミステリの謎解きが不可分に結びついている作品ということになります。

もし、そうだとすると、小野不由美の『東亰異聞』はホラーミステリと言えなくもないのかも知れません。 でも違うような気もします。 一方、山口雅也の『生ける屍の死』は、上の定義からすれば、まさしくホラーミステリということになりますが、 これもしっくりきません。多分、全然怖くなくて、ホラーと言うには無理があるからでしょう。 つらつらとそんなことを考えているうちに、 鈴木光司の『リング』は、ホラーミステリと言ってもいいんじゃないかと思いました。

結論。私にはジャンル分けは、できません。黙って面白い本を読んでいましょう。

天啓の器

『ウロボロスの基礎論』は未読のまま、読み始めることにしました。 最初の数ページを読んだ今、『ウロボロスの基礎論』より、『天啓の宴』の方が気になってしょうがありません。 『天啓の宴』が『天啓の器』で言及されているような話だったという記憶が無いのです。 『天啓の宴』も読んでないのかも知れません。


7月28日()

RubyUnit

そう言えば(言われなくても)そうですね。 なぜかC言語と勘違いしていたみたいです。

本日買った本

ホラー

ホラー(っぽい作品)で読んだことがある作家は、 鈴木光司、貴志祐介、坂東真沙子、小野不由美、ロバート・R・マキャモン、ディーン・クーンツ、ダン・シモンズ ぐらいでしょうか。ですが、ミステリ、サスペンスとして読んでることが多いです。 大御所、スティーヴン・キングは1冊も読んだことがありません。

ところで、SFホラーというジャンル(?)はあるようですが、ホラーミステリというジャンルはあるんでしょうか?


7月27日()

RubyUnit

最新版のRuby1.7だと tests/testtestfailure.rb がうまく動かないそうで、パッチをいただきました。 RubyUnit-0.5.4-03として公開します。 ひっかかるのは、 渡辺さんの日記でも触れられている warningの件です。

tests/testtestfailure.rbの中で

str.split('\n')

というようなコードでひっかかるみたいです。もらったパッチを取り込んで

str.split(/\n/)

に修正しました。


7月26日(金)

『キングとジョーカー』

探したことはあるんですが、まだ、見たことがありません。 早川ポケットミステリの『ガラス箱の蟻』は、どっかの図書館で偶然見つけて、借りて読んだことがあるように思います。

Kent Beck and Arister Cockburn in Osaka

コンポーネント入門 は、(油断しているうちに締め切りになってしまったので)もうどうでもいいのですが、 9月13日の企画はぜひとも実現してほしいです。


7月25日(木)

Cygwin gcj

gcj って exe ファイルを作るのですね。 それすら知りませんでした。 それにしても、 Hello World が strip かけて 1.3MB とは...。

試したら、cygiconv-2.dll が見つかりませんと言われてしまいました。 例によってインストールしていないものがあるようです。 (←多分libiconv2でしょう。)

Cygwinも、ちまちまインストールするような貧乏な性格(または、貧乏な環境)の人間には、 だんだん厳しくなってきているように感じる今日この頃です。

MD5 checksums

RubyUnitのページに MD5 checksums をつけてほしいとリクエストをもらったのでつけました。 元々、ページはerbを使って生成しています。当然 MD5 checksums は、Rubyのスクリプトで求めます。

require 'md5'
def md5sum(file)
  File.open(file) do |f|
    MD5.new(f.read).hexdigest
  end
end

問答無用で、Win32OLEのページRubyWinのページもMD5 checksumsがつくことになります。 みんな同じ作りなのです。

RubyWin

昨日の続きです。いよいよ、RubyWinです。 すんなりコンパイルできました。 ちゃんと恩恵を受けられました。 偉いぞ、gcc-3.1.1-4。

次は他の環境での確認です。 なんか、でもバグを見つけてしまった気がします。(以下次回へ続く...。)

しかし、こう暑いとなかなかエンジンがかかりません。


7月24日(水)

Mingw32 版 Ruby

昨日の続きです。 無事、コンパイルができました。make testも通りました。

env CFLAGS=-O2 CC="gcc -mno-cygwin" ../ruby/configure --enable-shared --build=i386-mingw32 --target=i386-mingw32 --host=i386-mingw32
make
make test

RubyWinへの布石

RubyWinのコンパイルをする前に、簡単なC++のコードをコンパイルして 確認しておくことにしました。

stringを使ってみます。

~/work/ruby-mnocygwin>cat > x.cpp
#include <string>
#include <iostream>
using namespace std;
int main(int, char**) {
  string s = "hello ";
  s += "world";
  cout << s << endl;
  return 0;
}
~/work/ruby-mnocygwin>gcc -mno-cygwin x.cpp -lstdc++
~/work/ruby-mnocygwin>./a.exe
hello world

今回は、不足しているものは無さそうです。 暑いのでスローペースでやります。(以下、続く...)


7月23日(火)

Mingw32 版 Ruby

という言い方が正しいのかどうかわかりませんが、 gcc-3.1.1-4 で gcc -mno-cygwin で Ruby をコンパイルしてみました。

configure

checking for C compiler default output... configure: error: C compiler cannot create executables

ふーむ。それではと

~/work/ruby-mnocygwin>cat > x.c
int main(int argc, char** argv) {
  return 0;
}                                         # "}" のあとは Ctrl + d を入力
~/work/ruby-mnocygwin>gcc -mno-cygwin x.c
ld: cannot find -lmingwex
~/work/ruby-mnocygwin> 

mingw関係のものが何か不足しているみたいですね。 mingw-runtime-2.0-2をダウンロードしました。 ついでにw32api-1.5-1もダウンロードしてインストールしました。

gcc -mno-cygwinがコンパイルできることが確認できたので、 ただいまRubyのコンパイルの再挑戦中です。(以下、明日へ続く...。)


7月22日(月)

SFミステリ

ピーター・ディキンスンの作品、例えば、『キングとジョーカー』などは入らないんでしょうか。 サンリオSF文庫から出版されていたという以外には、根拠はありません。 しかも、読んだことはありません。

...。

角川ホラー文庫から出版されている『閉じ箱』は絶対ミステリの短篇集だと思っている人間の言葉ではありませんでした。 すいません。

Cygwin

期待しているだけで、 パッチができてしまったので (わたなべさん、いつもありがとうございます)、 確認するために gcc-3.1.1-4 をインストールしました。

gcc -v

とすると、いろいろメッセージを出してくれます。 賑やかですね。

gcjも動くんでしょうか?

Cygwin Rubyがコンパイルできることは確認しました。 明日は gcc -mno-cygwin を試してみます。

autoconf

そう言えば、いつの頃からか、Perlが必要になってます。 CygwinにもPerlをインストールしなくてはいけないのですね。 うーむ。


7月20日()

SFミステリ

なるほど。 だからキッド・ピストルズシリーズがリストに入らないけど、 『生ける屍の死』はリストに入るんですね。


7月19日(金)

SS 2002

松江から帰ってきました。 疲れました。

16日は、台風の影響が無く、無事に到着。

まつもとさんとは、ほとんど突込んだ話をしませんでした。 システム工学の難しい話は、さっぱりわかりませんでした。 4日間の中で、印象に残ったことなどを列挙してみます。


7月15日(月)

いざ松江へ

明日、松江へ行く予定です。 台風の動きが非常に気になります。 下手すると電車が止まっているかも知れません。 新大阪へ何時に到着できるかが勝負の分かれ目です。

遅刻したらごめんなさい。(←誰に謝っているんですか?←いろんな人に)

ノートパソコンは持って行きません。しばらく反応が鈍くなります。


7月14日()

SKK

Vine Plus から

をインストールしました。 Vine はskkservにrskkservを採用していたんですね。 ローカルで利用するだけなので、速度の不満はありません。

SKK-JISYO.L 以外の辞書を利用する方法がわからなくて、ほんのちょっとだけ不満です。


7月13日()

DP/ML 消化中

Singletonの話題が出ています。

static なメソッドによるSingletonの実装のデメリットの1つが継承できないことだという意見がありました。

Ruby ではstatic なメソッドというものが存在しません。 多分、クラスメソッドがそれに該当するものだと思います。 でも、Rubyだと継承できるんですよね。

class Foo
  def Foo.singleton_method
    puts "This is singleton method of Foo"
  end
end

class Bar < Foo
end

class Baz < Foo
  def Baz.singleton_method
    super
    puts "This is singleton method of Baz"
  end
end

Foo.singleton_method
Bar.singleton_method
Baz.singleton_method

結果は次のとおり。

This is singleton method of Foo # => Foo.singleton_method
This is singleton method of Foo # => Bar.singleton_method
This is singleton method of Foo # => Baz.singleton_method
This is singleton method of Baz # => Baz.singleton_method

何が言いたいかというと、言語(の仕様)が変われば、デザインパターンも変わるんじゃないかということです。

Cygwin

gcc 3.1 では、-mno-cygwinでC++もサポートするようになったみたいです。 期待してます。 RubyWinが、この恩恵を受けられるかも知れません。


7月12日(金)

本日買った本・雑誌


7月10日(水)

消化開始

溜まったメールなどを消化し始めました。 ですが、また留守にするので反応が鈍くなります。


7月8日(月)

XPまつり

朝、咳さんと遭遇。 いきなり、私が触れたRWikiに対する疑問に対して答えてくださいました。 RWikiの応用例の一つとして、XP支援機能とでもいうようなものがあるとのことです。

昼休みに、咳さんにRWikiのXPサポート機能のデモを見せていただきました。

二次会では、偶然にも、鷲崎さんの隣になりました。 アスペクト指向の話など、なかなか貴重な話を聞けて刺激を受けました。

あと、私が期待していたほどライトニング・トークは盛り上がらなかったような気がします。

私が喋ったときは、

というルールがあったように思います。

このため、1人が喋り終わって次の人が喋るまでの時間は平均で30秒しかありません。 もたもたしていると、最後に喋る人の時間が無くなってしまいます。 いかに自分の喋りたいことを5分で納めるか、いかに素早く次の人と交代し、最後の人の 喋る時間を確保するかという緊張感の中、ライトニング・トークは進んでいきます。 当然、喋る時間が足らなかったり、逆に余ったりすることがあって、 そこで緊張が一瞬解けて、緩和され、そこに笑いが生まれるんじゃないかと思います。 (←今は亡き桂枝雀の緊張と緩和の中に笑いが生れるという理論が元になっています。)

今回のライトニング・トークでは、最後の「60分で終わる」という緊張感がちょっと欠けていたのではないでしょうか?


7月5日(金)

SFミステリ

「キッド・ピストルズ」のシリーズや西澤保彦の『複製症候群』なんかは SFミステリとしてリストアップされにくい気がします。

『星を継ぐ者』や高畑京一郎『タイム・リープ』なんかはSFミステリとしてリストアップされやすい気がします。

『ソリトンの悪魔』はSFミステリに入れるのはちょっと抵抗があって、 SF冒険小説(というジャンルがある)なら入れてもいいかという気がします。


7月4日(木)

Win32OLE

昨日の件、WIN32OLE#ole_free の中で GC.start を呼ぶというのを一瞬考えました。


7月3日(水)

Ruby vs Ksh

[ruby-talk:43332]より。 国内では一度負けているRubyですが、今回は、どっちが勝つ(った)んでしょうか?

Kshとは、なぜか因縁があるみたいですね。

Win32OLE

[ruby-list:35406]から始まるスレッドの流れで、 GC.start の代用品として WIN32OLE#ole_free を実装してみました。 (CVSの方には、ちょっと前に入れてあります。)

ですが、使い勝手が良くありません。

次の例なら、それなりに効果があります。

require 'win32ole'
10.times do 
  excel = WIN32OLE.new('Excel.Application')
  excel.visible = true
  excel.quit
  excel.ole_free
end

ですが、次の例だと、Excelのプロセスは10個できてしまいます。

require 'win32ole'
10.times do 
  excel = WIN32OLE.new('Excel.Application')
  excel.visible = true
  excel.workbooks.add
  excel.quit
  excel.ole_free
end

2番目の例では、excel.workbooks.add で生成されたOLEオブジェクトを 明示的にole_freeしていません。 このため、GCが起こるまで、Excelのプロセスは生き続けてしまうのです。

Win32OLE側で不要となったWin32OLEオブジェクトをすべて把握して ole_freeするには、GCと同じような仕組みを独自に持つ必要がありそうです。

そんな、いかにも面倒そうなことをやるつもりはありません。

結局は、GC.startを使ってくださいという話になりそうです。

残る問題はWIN32OLE#ole_freeの存在価値というか必要性がどの程度かということです。


7月2日(火)

MVP

サッカーのことは良く知りませんが、MVPは優勝チームから選ばれるとは限らないのですね。

『カーン物語』などというタイトルで漫画化されたり、 ドラマや映画や小説のモデルに使われそうな(使いやすそうな)感じがします。


7月1日(月)

Gimp

Gimpで遊びました。 まだ使い方が良くわかりません。

タイトルロゴを作るために手書きフォントをインストールしました。 あと、ださ字へた字も。


[トップページへ] [6月] [8月] [過去の雑感へ]