« 2010年9月 | トップページ | 2011年4月 »

2010年10月30日 (土)

[本] ミステリ小説読みにも読むことができたSF

エンドレス・ガーデン (片理誠)


SFは全く読み慣れていない。というよりも苦手である。
そんな私がこの本に手を出すことにしたのは、副題に


ロジカル・ミステリー・ツアーへ君と

とあったためである。


仮想世界を舞台にしたSF。
主人公のエンデは、永遠の眠りについた鍵の持ち主の部屋を訪れ、10個の鍵を集める旅をする。
それぞれの部屋には、さまざまな仕掛けがあり、鍵を手に入れるためには、障害を乗り越えなければならないという話。


「ロジカル・ミステリー」とあるので、いわゆる推理小説的なSFを期待したのだが、
推理小説というよりパズル・ストーリーといった方がしっくりくる。


推理小説を期待するとちょっと物足りない。
SF小説としてのできについては、SF読みではない私にはさっぱりわからないのであった。

| | コメント (0) | トラックバック (0)

2010年10月22日 (金)

[本] 2010年度本格ミステリ翻訳短編集部門というのがあれば、ベスト10入り間違いなしと思える本を読んだ

ストラング先生の謎解き講義 (ウィリアム・ブリテン)

自分の生徒やかつての教え子や同僚の教師、友人が巻き込まれた事件などを解決するストラング先生シリーズを収録した短編集。

ストラング先生が高校の教師であり、生徒や同僚が関わる事件が多いためか、殺人事件のような物騒な話は少ない。 だからといって、本格ミステリとして物足りないかと言えば、そんなことは全くない。 本格ミステリファンがニヤリとするような場面もある良質な本格短編ミステリ集である。

「しかし、あえていわせてもらえば、オルダーショット高校の教師陣にきみたちが
持っているのと同じだけの情報を与えてもらえれば、どんな犯罪でもきみたちと同
じくらいうまくさばくことができるだろう、ホルベックくん」

| | コメント (0) | トラックバック (0)

2010年10月16日 (土)

[本] ちょっと後味が悪かった古典部シリーズ第5段

ふたりの距離の概算 (米澤穂信)


高校の古典部のメンバーの周囲で起こる日常の謎を解く古典部シリーズ第5段。


同じシリーズの傑作『クドリャフカの順番』が文化祭の出来事だったのに対して、
今回の行事はマラソン大会。
マラソン大会で走っている間に、新入生の大日向友子が急に古典部を辞めると言い出した理由を奉太郎が推理するという話。


趣向自体は面白いのだけど、マラソン大会そのものは盛り上がりに欠ける。
奉太郎の推理に加えて、文化祭のときのような盛り上がりがあれば、傑作になったかも知れないのに。
マラソン大会は、文化祭に比べれば地味な行事かも知れないけど、話のもっていきかた次第で、
激走 福岡国際マラソン』とまではいかなくても、
それなりに盛り上げることだってできたんじゃないかと思う。


あと、読後の爽快感が無く、ちょっと後味が悪かったところもマイナス。


高校生の日常の謎を解く奉太郎の推理自体は面白いし、長編の中に短編推理を紛れ込ませる構成も良かっただけに惜しい。


それにしても、過去の作品を読んでいれば、よくわかるような思わせぶりな描写がそこかしこに見られるのだが
シリーズすべて読んでいるはずの自分が、その描写が何を意味するのか、どれ一つとして思い出せないことに、
驚いてしまった。

| | コメント (0) | トラックバック (0)

2010年10月11日 (月)

[Ruby] JRubyを使う理由

なるほど。JRuby だと データベースベンダー提供の JDBC を使えるというメリットがあるのか([ruby-talk:371513])。

| | コメント (0) | トラックバック (0)

[本] 一冊にまとまったカーデュラ・シリーズ

カーデュラ探偵社 (ジャック・リッチー)


短編の名手ジャック・リッチーによるカーデュラ・シリーズを全作収録した短編集。
カーデュラ・シリーズの他、ノン・シリーズ短編5篇も収録されている。


ハードカバーではばらばらで収録されていたカーデュラ・シリーズを1冊にまとめた短編集。
ハードカバーは読んでいるので、カーデュラ・シリーズは再読となるはずだが、
ストーリー(オチ)を忘れていることもあり、どの作品も楽しめた。
短編ミステリとはこうあるべきだよな、上手いなあと感心してしまった。
シリーズ外の5篇もどっかで読んだことがある気がするのだが、こちらも面白かった。


どうでもいいことだが背表紙が講談社文庫にそっくりだと思ってしまった。

| | コメント (0) | トラックバック (0)

2010年10月10日 (日)

[Ruby] Win32OLE と Thread

調べてみたら、mswin32 も、Cygwin も ole_pure_uninitialize の


for (i = 0; i < len; i++) {
DWORD dwCookie = NUM2INT(rb_ary_entry(globalInterfaceCookies, i));
globalInterfaceTable->lpVtbl->RevokeInterfaceFromGlobal(
globalInterfaceTable, dwCookie);
}

の RevokeInterfaceFromGlobal を呼び出したところでSEGVすることがわかった。
ループを最後まで回り切らず、途中でSEGVしている。

| | コメント (0) | トラックバック (0)

[Ruby] Win32OLE と Thread

ああ、なんかかなり混沌とした状況に。
とりあえず、arton さんにご提供いただいた TlsAlloc 周りのパッチは、適用せずに、
どこでSEGVしてるのか、もうちょっと調べてみよう。

| | コメント (0) | トラックバック (0)

2010年10月 9日 (土)

[Ruby] Win32OLE と Thread (Ruby 1.9)

artonさんが作ってくださったパッチを適用してWindows XP で VC2008EE でコンパイルして試してみたら、 nmake test-all TESTS=win32ole で win32ole.so を requireするタイミングでSEGVした。
パッチを適用したときには、何のエラーメッセージも出なかったので、適用はしくじっていないと思う。やっぱり、Windows XP だと TlsAllocを使わないと駄目なのかな。
ということで、TlsAllocを使うようにして、CygwinでもMingw(in Cygwin) でもコンパイルできるようにしてみた。
が、今度は、

  • Cygwin では、 make test-all TESTS=win32ole が最後まで実行されてからSEGVする。
  • mswin32 版では、 nmake test-all TESTS=win32ole が最後まで実行されてからSEGVする。
  • Mingw では、 最後まで実行されずに途中でSEGVする。

ようになってしまった。うーむ。本当は手元であらかじめ作っておいたtest_thread2.rb が動作するようになるはずだったのに....。試しに、test_thread2.rb を実行するとなんか完全にテストが途中で停止しているっぽくてこれも駄目っぽい....。
TlsAllocの使い方を間違えているのか?
とりあえず、今日、できた分は、win32ole_marshal.tar.bz2 です。

| | コメント (2) | トラックバック (0)

2010年10月 8日 (金)

[日記] QC検定

12日公開予定のWeb合格発表が既にされていた。

2級は何度も確認したが自分の番号があった。 結局、フリガナの書き忘れは自分の勘違いだったのか、 それとも、フリガナ書き忘れていても合格させてもらえたのかわからないまま。

ちなみに正解率は、自己採点で 80 / 91 = 87 % でした。

あとは合格証が本当に届けば、もうこっちのものである。

1級は自分の番号がなかった。 5分で仕上げた論述がやっぱり駄目だったのか、それともマークシートの正解率が不足していたのか、 その両方だったのかよくわからない。

ちなみに論述を除いたマークシートの正解率は、自己採点で 68 / 95 = 71 % でした。

あとは、不合格証が届くのを待つばかり。

さて、次回の受験はどうしようかな...。

実のところ、品質管理の実践経験が無く、実体験に基づく記述ができないため、論述は厳しいのだ。

| | コメント (1) | トラックバック (0)

[Program] TLS

TLSについて調べていたら gcc では


__thread

というのがあるらしいことがわかった。Cygwin とか Mingw でも使えるかどうかは不明。


とりあえず、#ifdef で mswin32(VC++)と分けて試してみると思ったんだけど、 __declspec(thread) に関して
MSDNのページを見つけた。
このページによれば


Thread-local variables work for EXEs and DLLs that are statically 
linked to the main executable (directly or via another DLL) - i.e.
the DLL has to load before the main executable code starts running.
 
For DLLs that are loaded dymanically after the process has started
(delay load, COM objects, explicit LoadLibrary, etc) __declspec(thread)
does not work on Windows XP, 2003 Server and earlier OSes, but
does work on Vista and 2008 Server.

ということは、Windows XP では、Win32OLE で __declspec(thread) は使わないで
TlsAlloc を使えってことだよね。
なので、#ifdef 使って分けるより、gcc でも TlsAlloc で統一しちゃった
方がすっきりするんじゃないかという気がしてきました。

| | コメント (3) | トラックバック (0)

2010年10月 3日 (日)

[Ruby] Win32OLEとThread

artonさんが作ってくださったパッチを取り込んで CygwinのMingw64でコンパイルしてみた。

compiling win32ole
gcc -I. -I../../.ext/include/i386-cygwin -I../../../../../../svn/ruby/trunk/in 
clude -I../../../../../../svn/ruby/trunk/ext/win32ole -DRUBY_EXTCONF_H=\"extco
nf.h\" -O3 -g -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith 
-Wwrite-strings -Wno-missing-field-initializers -Wno-long-long  -o win32ole.o 
-c ../../../../../../svn/ruby/trunk/ext/win32ole/win32ole.c
../../../../../../svn/ruby/trunk/ext/win32ole/win32ole.c:230: 警告: 'thread' 
attribute directive ignored
gcc -shared -s -o ../../.ext/i386-cygwin/win32ole.so win32ole.o -L. -L../.. 
-L. -Wl,--enable-auto-image-base,--enable-auto-import -lruby191 -ladvapi32 
-lkernel32 -luser32 -luuid -loleaut32 -lole32  -lpthread -lrt -ldl -lcrypt
win32ole.o: In function `Init_win32ole':
../../../../../../svn/ruby/trunk/ext/win32ole/win32ole.c:9385: undefined 
reference to `_IID_IGlobalInterfaceTable'
../../../../../../svn/ruby/trunk/ext/win32ole/win32ole.c:9385: undefined 
reference to `_CLSID_StdGlobalInterfaceTable'
collect2: ld はステータス 1 で終了しました
make[1]: *** [../../.ext/i386-cygwin/win32ole.so] エラー 1

declspec(thread) には対応していないみたいなので、そこは、まあ、修正するとして...。 うーん。-luuid つけているけど駄目なのか。Cygwin の gcc4 も試したけど同じだ。

$ nm /usr/lib/w32api/lib*.a | grep IID_IGlobalInterfaceTable
$
$ nm /usr/lib/w32api/lib*.a | grep CLSID_StdGlobalInterfaceTable
$

念のため、IID_IUnknown なら見つかるはずだと思って確認。

$ nm /usr/lib/w32api/lib*.a | grep IID_IUnknown 
00000000 R _IID_IUnknown
$

うーん。IID_IGlobalInterfaceTable と CLSID_StdGlobalInterfaceTable は無いのか? どうしたもんか。

| | コメント (1) | トラックバック (0)

[Ruby] Thread と Win32OLE

ちょっとだけやる気を出した。


[Bug 2655] を元に手元でエラーになるテストが書けた。
setPriority を使うのはなんか嫌だったので、GetOwnerSid を代わりに使うことにした。


あとは、artonさんが作ってくださったパッチを取り込んでエラーにならないか確認すればOK.

| | コメント (0) | トラックバック (0)

2010年10月 2日 (土)

[本] 出版業界と書店の裏側が見える日常の謎連作短編ミステリ

背表紙は歌う』(大崎梢)

平台がおまちかね』出版社の営業部員、井辻くんが書店回りをする営業ならではの日常の謎に巻き込まれるミステリシリーズ第2段。

出版、書店業界に厳しい裏側を見せつつも最後はハートフルミステリの名の通り、希望の持てる結末を向かえるので、安心して読める。 手放しで喜べるような話じゃなく、ミステリとしても物足りないなあと思って読み進めたのだけど、 後半の短編になるほど、「ハートフル」な展開が全面に出てきて、最後の短編では嬉しいニアミスもあり、楽しめた。

日常の謎なのにタイムリミットサスペンスになっている「君と僕の待機会」がオチのつけかたも含めて好み。

| | コメント (0) | トラックバック (0)

« 2010年9月 | トップページ | 2011年4月 »