結局のところ、『天啓の宴』も読んでいないという結論を出しました。
バグがあったので修正。
保存していないファイルがあっても、終了を選ぶと問答無用で終了するようになっていました。 ScintillaをバージョンアップしていたのにScintillaの obsolete APIを利用していたのが敗因です。
それにしても、このようなバグを誰も指摘しなかったということは、 使われていないのか、作者にバグレポートを出すだけ無駄だと思われてるか どちらかでしょうね。
SFミステリがSF的設定とミステリの謎解きが不可分に結びついている作品だとすれば、 ホラーミステリは、ホラー的設定とミステリの謎解きが不可分に結びついている作品ということになります。
もし、そうだとすると、小野不由美の『東亰異聞』はホラーミステリと言えなくもないのかも知れません。 でも違うような気もします。 一方、山口雅也の『生ける屍の死』は、上の定義からすれば、まさしくホラーミステリということになりますが、 これもしっくりきません。多分、全然怖くなくて、ホラーと言うには無理があるからでしょう。 つらつらとそんなことを考えているうちに、 鈴木光司の『リング』は、ホラーミステリと言ってもいいんじゃないかと思いました。
結論。私にはジャンル分けは、できません。黙って面白い本を読んでいましょう。
『ウロボロスの基礎論』は未読のまま、読み始めることにしました。 最初の数ページを読んだ今、『ウロボロスの基礎論』より、『天啓の宴』の方が気になってしょうがありません。 『天啓の宴』が『天啓の器』で言及されているような話だったという記憶が無いのです。 『天啓の宴』も読んでないのかも知れません。
そう言えば(言われなくても)そうですね。 なぜかC言語と勘違いしていたみたいです。
『夏と花火と私と死体』 (乙一)
最近、この人の作品が、話題になっているように思ってました。 手に取ってみたら、デビュー作とあったので、乙一入門編として、買って読んでみることにしました。 元々、ホラーは、そんなに好きじゃありませんし、あまり読んでません。 だから、気に入らないかも知れませんが、この程度の出費なら妥協できます。
ホラー(っぽい作品)で読んだことがある作家は、 鈴木光司、貴志祐介、坂東真沙子、小野不由美、ロバート・R・マキャモン、ディーン・クーンツ、ダン・シモンズ ぐらいでしょうか。ですが、ミステリ、サスペンスとして読んでることが多いです。 大御所、スティーヴン・キングは1冊も読んだことがありません。
ところで、SFホラーというジャンル(?)はあるようですが、ホラーミステリというジャンルはあるんでしょうか?
最新版のRuby1.7だと tests/testtestfailure.rb がうまく動かないそうで、パッチをいただきました。 RubyUnit-0.5.4-03として公開します。 ひっかかるのは、 渡辺さんの日記でも触れられている warningの件です。
tests/testtestfailure.rbの中で
str.split('\n')
というようなコードでひっかかるみたいです。もらったパッチを取り込んで
str.split(/\n/)
に修正しました。
探したことはあるんですが、まだ、見たことがありません。 早川ポケットミステリの『ガラス箱の蟻』は、どっかの図書館で偶然見つけて、借りて読んだことがあるように思います。
コンポーネント入門 は、(油断しているうちに締め切りになってしまったので)もうどうでもいいのですが、 9月13日の企画はぜひとも実現してほしいです。
gcj って exe ファイルを作るのですね。 それすら知りませんでした。 それにしても、 Hello World が strip かけて 1.3MB とは...。
試したら、cygiconv-2.dll が見つかりませんと言われてしまいました。 例によってインストールしていないものがあるようです。 (←多分libiconv2でしょう。)
Cygwinも、ちまちまインストールするような貧乏な性格(または、貧乏な環境)の人間には、 だんだん厳しくなってきているように感じる今日この頃です。
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です。 すんなりコンパイルできました。 ちゃんと恩恵を受けられました。 偉いぞ、gcc-3.1.1-4。
次は他の環境での確認です。 なんか、でもバグを見つけてしまった気がします。(以下次回へ続く...。)
しかし、こう暑いとなかなかエンジンがかかりません。
昨日の続きです。
無事、コンパイルができました。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のコンパイルをする前に、簡単な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
今回は、不足しているものは無さそうです。 暑いのでスローペースでやります。(以下、続く...)
という言い方が正しいのかどうかわかりませんが、
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のコンパイルの再挑戦中です。(以下、明日へ続く...。)
ピーター・ディキンスンの作品、例えば、『キングとジョーカー』などは入らないんでしょうか。 サンリオSF文庫から出版されていたという以外には、根拠はありません。 しかも、読んだことはありません。
...。
角川ホラー文庫から出版されている『閉じ箱』は絶対ミステリの短篇集だと思っている人間の言葉ではありませんでした。 すいません。
期待しているだけで、 パッチができてしまったので (わたなべさん、いつもありがとうございます)、 確認するために gcc-3.1.1-4 をインストールしました。
gcc -v
とすると、いろいろメッセージを出してくれます。 賑やかですね。
gcj
も動くんでしょうか?
Cygwin Rubyがコンパイルできることは確認しました。
明日は gcc -mno-cygwin
を試してみます。
そう言えば、いつの頃からか、Perlが必要になってます。 CygwinにもPerlをインストールしなくてはいけないのですね。 うーむ。
なるほど。 だからキッド・ピストルズシリーズがリストに入らないけど、 『生ける屍の死』はリストに入るんですね。
松江から帰ってきました。 疲れました。
16日は、台風の影響が無く、無事に到着。
まつもとさんとは、ほとんど突込んだ話をしませんでした。 システム工学の難しい話は、さっぱりわかりませんでした。 4日間の中で、印象に残ったことなどを列挙してみます。
松江駅周辺はホテルが多い。やはり、観光の町なんでしょうね。
まつもとさんのチュートリアルは
ハードウェアが安価で高速になった今、コンピュータに優しい言語より人に優しい言語が良い。 (かなり、乱暴な要約ですが、まつもとさんのキーノートなど他の講演でも首尾一貫して、 この議論を展開されていたように思います。)
簡単なプログラムの紹介。 ソケットライブラリを利用したクライアントプログラムが1行で書けることなど、簡潔さを強調。
そういえば、今回は、マルチスレッドのプログラムの紹介がありませんでした。 これは、『たのしいRuby』同様、教育的配慮だったのでしょうか? (まつもとさんに確認するのを忘れました。)
Rubyを知らない人向けの講演でした。
まつもとさんは、このページを読んでいるらしい。
私は、「Rubyをバリバリ使っている人」に分類されるらしい。
形式手法で、PRE条件とPOST条件を先にしっかりと書いてから仕様を記述するという 「XPのテストファーストプログラミング的アプローチ」を取ったという話がありました。 こんなところでXPの話が出てきたのがちょっと意外でした。
組み込みのテストの話を聞いたのですが、話を聞いていると、別に組み込みに限った話じゃなく 組み込み意外の世界(私が知っている世界)でも同じだと思いました。
米国では、テストのスペシャリストに数学と化学を専攻した人が多いという話がありました。
化学の方は、わかりませんが、数学を専攻した人が多いというのは、何となくわかる気がします。 例えば、サイコロをテーブルの上に置いて、そのサイコロの動かし方にどんなものがあるかを考えます。 横に回転させるとか、縦に回転させるとか、平行移動するとかいろいろあります。 数学をやっている人は「動かさない」というのも自然と考えます。 代数学の単位元を考えるようなものです。
この発想の違いが、普通の人なら発見しにくいようなバグの発見につながり、 テストのスペシャリストとして生き残れるんじゃないかと思います。
もちろん、この違いは、最初から身についている訳じゃなくて、 数学をやっていくうちに訓練により、備わってくるものです。
アスペクト指向は、チュートリアルの時間を長く取って、じっくり解説して欲しかったです。
最初から最後まで、アスペクト指向で開発するのじゃなくて、 オブジェクト指向開発(または他の開発手法)と組み合わせて使うという印象を持ちました。
アスペクト指向言語を使わなくても (C言語でもやろうと思えばオブジェクト指向開発はできるように) フレームワークなり、フックなりを使えば、アスペクト指向設計の実装はできるとのことです。 (そう言えば、C言語でオブジェクト指向開発をするための解説書が、トッパンから出版されていたと思います。) 最も効率的に実装できるのがアスペクト指向言語(AspectJ)のようです。
話はそれますが、オブジェクト指向2002で、 アスペクト指向のチュートリアルが予定されているようです。
某氏が、プログラミングは、垂直に穴を掘ることと同じだとおっしゃって、その様子をスライドで見せていました。 島根県立美術館の常設展の方で、穴をあけることで空間を認知させるとか何とかそういう芸術の解説がありました。 展示されている作品は水平方向の穴でした。 ぜひとも、某氏には、垂直方向の穴掘りを芸術の域にまで、高めていただきたいものです。(←意味不明です。)
松江駅の書店では、『出雲伝説7/8の殺人』(島田荘司)が平積みになってました。さすがご当地です。
因幡の白うさぎとかいうお土産があったのですが、 「因幡は鳥取」とまつもとさんから突っ込みがあったので お土産は別のにしました。
明日、松江へ行く予定です。 台風の動きが非常に気になります。 下手すると電車が止まっているかも知れません。 新大阪へ何時に到着できるかが勝負の分かれ目です。
遅刻したらごめんなさい。(←誰に謝っているんですか?←いろんな人に)
ノートパソコンは持って行きません。しばらく反応が鈍くなります。
Vine Plus から
skkdic-20010306-0vl1
rskkserv-2.94.11-0vl2
skkinput-2.03-4
をインストールしました。 Vine はskkservにrskkservを採用していたんですね。 ローカルで利用するだけなので、速度の不満はありません。
SKK-JISYO.L 以外の辞書を利用する方法がわからなくて、ほんのちょっとだけ不満です。
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
何が言いたいかというと、言語(の仕様)が変われば、デザインパターンも変わるんじゃないかということです。
gcc 3.1 では、-mno-cygwin
でC++もサポートするようになったみたいです。
期待してます。
RubyWinが、この恩恵を受けられるかも知れません。
UNIX USER
和ジラにつられて...。
UNIX MAGAZINE
なんとなく。 実は、今、定期講読している雑誌が1冊もありません。 ふと、ちょっと寂しい感じがしました。 かと言って、Linux特化の雑誌はあまり気がすすみません。 Software Design もちょっと気がすすみませんでした。 そこで、UNIX MAGAZINEを買ってみました。 でも、まだ定期講読をすると決めた訳ではありません。 定期講読をするかどうか、するとしたら何の雑誌にするか、探りを入れている段階です。
ほとんど衝動買いなので、読まないまま終わってしまう可能性もあります。
『天啓の器』 笠井潔
この人の小説の中で展開される小難しい議論は苦手です。 でも、竹本健治や中井英夫が登場する小説となれば気になってしまいます。
解説を読みました。 先に『ウロボロスの基礎論』を読んだ方がいいのでしょうか? 『ウロボロスの偽書』は読んでます。 『天啓の宴』は多分、読んでると思われます。
溜まったメールなどを消化し始めました。 ですが、また留守にするので反応が鈍くなります。
朝、咳さんと遭遇。 いきなり、私が触れたRWikiに対する疑問に対して答えてくださいました。 RWikiの応用例の一つとして、XP支援機能とでもいうようなものがあるとのことです。
昼休みに、咳さんにRWikiのXPサポート機能のデモを見せていただきました。
二次会では、偶然にも、鷲崎さんの隣になりました。 アスペクト指向の話など、なかなか貴重な話を聞けて刺激を受けました。
あと、私が期待していたほどライトニング・トークは盛り上がらなかったような気がします。
私が喋ったときは、
1人の喋る時間は絶対5分。
11人が喋る。
何が何でも60分で終わる。
というルールがあったように思います。
このため、1人が喋り終わって次の人が喋るまでの時間は平均で30秒しかありません。 もたもたしていると、最後に喋る人の時間が無くなってしまいます。 いかに自分の喋りたいことを5分で納めるか、いかに素早く次の人と交代し、最後の人の 喋る時間を確保するかという緊張感の中、ライトニング・トークは進んでいきます。 当然、喋る時間が足らなかったり、逆に余ったりすることがあって、 そこで緊張が一瞬解けて、緩和され、そこに笑いが生まれるんじゃないかと思います。 (←今は亡き桂枝雀の緊張と緩和の中に笑いが生れるという理論が元になっています。)
今回のライトニング・トークでは、最後の「60分で終わる」という緊張感がちょっと欠けていたのではないでしょうか?
「キッド・ピストルズ」のシリーズや西澤保彦の『複製症候群』なんかは SFミステリとしてリストアップされにくい気がします。
『星を継ぐ者』や高畑京一郎『タイム・リープ』なんかはSFミステリとしてリストアップされやすい気がします。
『ソリトンの悪魔』はSFミステリに入れるのはちょっと抵抗があって、 SF冒険小説(というジャンルがある)なら入れてもいいかという気がします。
昨日の件、WIN32OLE#ole_free の中で GC.start を呼ぶというのを一瞬考えました。
[ruby-talk:43332]より。 国内では一度負けているRubyですが、今回は、どっちが勝つ(った)んでしょうか?
Kshとは、なぜか因縁があるみたいですね。
[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の存在価値というか必要性がどの程度かということです。
サッカーのことは良く知りませんが、MVPは優勝チームから選ばれるとは限らないのですね。
『カーン物語』などというタイトルで漫画化されたり、 ドラマや映画や小説のモデルに使われそうな(使いやすそうな)感じがします。
Gimpで遊びました。 まだ使い方が良くわかりません。
タイトルロゴを作るために手書きフォントをインストールしました。 あと、ださ字とへた字も。