2003年08月の雑感

更新日:2003-08-30
[トップページへ] [7月] [10月] [過去の雑感へ]

8月30日()

 トリビアの泉

「明日、会社で使える無駄な知識が紹介されました。」とかなんとか言ってますが、実際に使えるんでしょうか?

私は、恥かしくて使えません。

唐突に

XXXX は YYYY なんだよ。

と言っても周囲から浮いてしまうだろうし、「あっ。それ知ってる。昨日、テレビでやってた。」と 言われるのも、秘かにそう思わるのもなんか嫌だし。

ということで、まだ一度もトリビアの泉で得た情報を使ったことはなく、本当にトリビアの泉で得た知識は、トリビアなのでした。 で、トリビアなまま、その知識をいつの間にか忘れているのでした。

 銅メダル

結局、待ち切れなくて、いつの間にか眠ってしまいました。 「あと、何分ぐらいでスタートです。」とか言ってくれればいいのに「もうすぐ」しか言わないし。

気づいたら朝でした。


8月26日(火)

 元はテキスト

CSV ファイル

aa,bbb  ,c c      ,ddd

があって、これを

aa,bbb,c c,ddd

としたい(要は "," の前の半角ブランクを全部消したい)んだけど、Excel で Trimみたいなのありましたか?

と質問されました。

Excelは、あんまり詳しくありません。できるかどうかも知りません。

メニューから検索かなんか選んでダイアログ出して、「高度な検索」とか「詳しい検索」みたいなボタンかタブがあって そこでごちゃごちゃ入力するとできるかも知れません。

ひょっとすると、CSV ファイルを読み込むときにファイルを開くダイアログでなにかたくさんボタンを押せば、 できるのかも知れません。 でも、調べるのも面倒です。

多分、Trimに近いものもなんかあったはずなのでマクロ組むなり式入れるなりすれば何とかなるかも知れませんが それを作るのも面倒です。

そこで、秀丸使えばできるよと教えたら、「秀丸でできるんですか。」とちょっと驚かれてしまいました。

ここで、ViだとかEmacsだとかsedだとかawkだとかRubyだとかPerlだとか言いだすと インストールする所から始めないといけません。 これでは、私の方が面倒になってしまうし、相手も嫌になってしまうでしょう。

まあ、CSVだからと言ってExcelにこだわらなくても、テキストを扱える道具があれば何とかなるわけですね。

ちなみに自分でやるなら、Vim を最初に使います。

本日の教訓:

CSV 元をただせば ただのテキスト

 Vim

Vim homepageがショッキングな見出しで始まってます。

 Vim

Vim のサイトには Vim trivia : vim online というタイトルのページがある。

...

えーと、何へぇぐらいもらえますか?

 残暑

暑さのせいかちょっとへばってしまいました。

 最近のVim

insert mode で矢印キーやDeleteキーが使えるのですね。 知りませんでした。

でも、私は、insert mode だろうが、コマンドモードだろうが、矢印キーもDeleteキーも使うことはないと思います。


8月23日()

 『コウノトリの道』(ジャン=クリストフ・グランジェ)

読了。

コウノトリにそのような秘密が隠されていたとは、思いもよりませんでした。 このアイデアには感心してしまいました。

何故、ルイが調査の旅に出ることにしたのかとか、ルイの主張が素直に受け入れられる点とか ご都合主義的なところも見受けられますが、ストーリーテリングのうまさでぐいぐい読ませてくれます。

猟奇的な殺人である必然性が弱く、そういう設定にしなくても良かったんじゃないかと思います。

フランスミステリというと、私はどうしてもセバスチャン・ジャプリゾを思い浮かべます。 幻想的で技巧的な作品という印象を持っているのですが、その手の作品とは全く違う骨太な作品です。

本作とは関係ありませんが、 訳者あとがきの次回作の要約を読んで、トマス・ハリスを連想するのは私だけですか?

 本日買った本


8月22日(金)

 人呼んでさすらいのVM

笑ってしまいました。 三味線の音が頭の中をぐるぐると駆けめぐってます。

 『あやし』(宮部みゆき)

読了。

ミステリではありません。(「影牢」はちょっとミステリっぽいです。) 江戸時代を舞台にしたホラー短編集です。怪談と言った方がしっくりくるかも。 「居眠り心中」が一番怖かったです。 幽霊や妖怪より人間の怨念の方が怖いということでしょうか。


8月21日(木)

 本日買った本

 思わず手にしたけど買わなかった本


8月19日(火)

 今日の謎なスクリプト

#!/usr/bin/ksh 
cat foo.txt | sed 's/abc/xyz/g' > tmpfoo.txt
cat tmpfoo.txt | sed 's/foo/bar/g' > bar.txt

なんでファイルにリダイレクトするんですか? パイプ使ってるんだから全部パイプにすればいいじゃないですか。 というより、なんで、わざわざ cat するんですか? というか、こんなの、cat をやめて、sed を1つにまとめれば1回で済むでしょうに。


8月18日(月)

 Blaster

今週最初のお仕事は、Blaster対策。

 スクリプト

最近、Kshとかawkなどを使ったスクリプトを読んでいます。 そのコードがわかりづらくて理解するのに時間がかかってます。 わざとわかりづらく書いているのかと勘繰ってしまうほどです。

 正規表現

意外と正規表現って知られていないのでしょうか?

この前、「秀丸で末尾の一文字を削除する方法無いですか?」と聞かれたので、 「秀丸で正規表現が使えればできるはず」と適当に実演してみせました。

今日も、

abc [xxx] def xxx ; ghi
jkl [xxx] mno xxx ; pqr
  ....

という内容のファイルを

ghi
pqr
 ...

とできないか(各行の先頭から";" の後ろのスペースまでを削除したい。)と聞かれました。

正規表現を使えば、難しくないですよね。

私は、基本的な正規表現しか使えません。 それでも、正規表現というものがあるということを知ってるのと知らないのとでは偉い違いです。

正規表現というものの存在を知っているから、 普段使ったことがない秀丸でも、 正規表現が使えればできるだろうと見当をつけることはできます。 でも正規表現を全く知らないと、そこに到達するのは難しいのかも知れません。


8月16日()

 『硝煙のトランザム』(ロブ・ライアン)

読了。

前半部分は、何の話なんだかさっぱりわかりません。 目まぐるしく場面を切り替えながら、複数のストーリーが語られていきます。 これらのストーリーがどう絡むのかさっぱり見えてこないし、どの話がメインになるのかも全くわかりません。 主人公すら誰なのかよくわかりません。 登場シーンで主人公の一人になるのかと思った人間は、次のシーンであっさり殺されちゃうし。 解説にあるように確かに「手ごわい」です。 複数のストーリーが絡んでくるのは別にいいのですが、メインとなる話は早目にわからないとちょっとしんどいです。

バラバラに語られていた個々のストーリーがどう絡むのか次第に明らかになってくる中盤以降、徐々にテンポが加速され、 そのまま一気にラスト・シーンへとなだれ込みます。 バラバラのストーリーが有機的に結びついていくさまは、ジグソーパズルのピースの1つ1つが埋めるのを眺めるようで、 まるで本格ミステリみたいです。

ただ、伏線が多すぎるし、あまりにも多くのストーリーを絡め過ぎなんじゃないかと思いました。 もう少し話をシンプルにした方が、冒険小説としては、むしろ面白くなったんじゃないかという気がします。

ラストは、あまりにも悲しいです。

「語りに罠をしかけ」ている部分は、どこなのか、よくわかりませんでした。 ひょっとすると、綾辻行人が某作品で使ったトリックと同じトリックのことですか? いや。別にそれは、さほど気にならないんですけど。


8月15日(金)

 Ruby : Win32OLE (OleUninitialize atexit)

Cygwin版ではちゃんと動くのですが、Mingw32版(gcc -mno-cygwin)やVC++ だと駄目な場合があるんです。

 Ruby : Win32OLE

RAAのエントリを修正するのを忘れてました。


8月14日(木)

 Ruby : Win32OLE

message loop を呼ばないもので試してみてもらったところ大丈夫との返事をもらったので ヴァージョンアップしました。

あと、atexit で OleUninitialize を呼ぶようにするのもやめにしました。

なお、私のサイトで公開してるのは、1.6.8 用です。 多分、そのうち公開しなくなるでしょう。

 Ruby commit

commit するときは、

ということになってるらしいです。([ruby-dev:21153]から始まるスレッド)

今回は、version.h は今日の日付になってたので、ChangeLog に記入しただけです。


8月13日(水)

 FOX GUI Toolkit

Windows 環境にインストールしました。

Cygwin の環境では、

./configure --disable-shared
make
make install

Cygwin の環境で cygwin.dllを使わないバージョンを作るには、こんな感じです。

CC='gcc -mno-cygwin' CXX='g++ -mno-cygwin' \
./configure --target=i386-mingw32 --host=i686-pc-cygwin \
--build=i686-pc-cygwin --disable-shared

make

make install DESTDIR=/cygdrive/d

 Ruby:FXRuby

次は、FXRuby のインストール

Cygwin 版 Ruby の場合

ruby install.rb config
ruby install.rb setup
ruby install.rb install

Mingw 版 Ruby の場合

ruby install.rb config

このあと Makefile に 次のように CXX を追加。 (←やり方が格好悪いですが、install.rb 経由だったので、スマートな方法が良くわかりませんでした。)

CXX = g++ -mno-cygwin

再びコマンドラインに戻って

ruby install.rb setup

ruby install.rb install

素直にexampleが動いてくれました。

 Win32OLE と FXRuby

動作しないsampleを送付してもらいました。 なんかCygwinな環境だとまともに動くような。

Mingw版(gcc -mno-cygwin でコンパイルしたもの)だと駄目っぽいですね。

要は、Win32OLE側でmessage loop を呼ばなきゃいいのですが、 ソースを見ているうちに、OLE_FREE の中で なんで message loop を呼んでいるのかわからなくなってきました。 一体、何を根拠にこんなコードを書いたのかさっぱり思い出せません。 (←過去の自分は、見ず知らずの赤の他人。) 別に必要無いように思えてきたので、削除したものを逆に送付して試してもらうことにしました。 手元では、削除したものでもちゃんと動いています。

 Win32OLE:OleUninitialize

以前、発生していたエラーですが OleUninitialize()を呼ぶと死んでしまいます。 試しに、CoInitialize() と CoUninitialize()の組み合わせにしたのですが、それでも駄目でした。


8月12日(火)

 Win32OLE and FXRuby

一緒に使うと相性が悪いそうです。 FXRuby も独自に message loop を持っていて、Win32OLEも message loop を持っているからだそうです。 回避策として、Win32OLEの message loop を有効にするか無効にするか設定するクラスメソッドを 定義してほしいとのことでした。ソースコードも送ってもらいました。 でも、問題が発生するsampleがありませんでした。

とりあえず、crash する sampleを送ってもらえないかとお願いしました。

最初にやったのは、FXRuby のダウンロードと、 FOX GUI Toolkit のダウンロードです。 せっかくなので、記念にFXRubyを触ってみようと思いました。

白状すると、ここしばらく swin以外のGUIは Rubyで使ったことがありません。

FXRuby ってどんな感じなのでしょうか?

Windows 環境に限定すれば、他に何も必要としないswinが 一番手軽だと思ってます。 私の中では評価が高いです。 まあ、Windows プログラミングの経験が多少あるので、馴染みやすいということもひょっとしたらあるかも知れません。

世間一般では、標準添付のRuby/Tkがメジャーなんでしょうか?


8月11日(月)

 Vine Linux

11月には3.0が出るらしい。2004年には、3.1CRがリリースされるらしい。 気軽に試せるマシンがもう1台あればいいのですが...。

なんか最近、Linux関連の情報にも疎くなっているような。

 Java : CRC チェックサム

java.util.zip.CRC32を使えばできそうです。

ところで、zipってCRCを使っているんですね。 (圧縮前のファイルの正当性チェックのために使っている模様。←憶測です。)

 LL Saturday

Ruby関係者の日記のページで LL Saturdayに関係する話題を読むにつけ、 参加できなかったのは残念だなあと思うその一方で、行ったら行ったで台風でえらいことになってたんだから これで良かったのだと完全な負け惜しみと自覚しつつ、思ってみたりする1日でした。 (←いや、油断して申し込みを忘れた自分が悪いのです。)

LL Saturday そのものは、さておき、休憩時間だとか飲み会の席だとかでいろいろ濃い話が聞きたかったです。 (経験上から言わせてもらえば、そっちの方が正式のプログラムより楽しかったりします。 余談ですが、それを正式なプログラムでやろうというのがBOFかなあと思ってます。)

 10月の温泉

本業のスケジュールとの兼ね合いで、参加はちょっと難しそうな感じです。

 HTML

HTMLのファイルを修正するときに

((<hogehoge|URL:http://xxx.ne.jp/>))

と思わず書いてしまいました。 Another HTML-lintでチェックしたとき 一瞬何が悪いのかわかりませんでした。

<A HREF="http://xxx.ne.jp/">hogehoge</A>

という書き方をすっかり忘れているというより、 RDとHTMLがごっちゃになっているというか、 RD = HTMLという図式が頭の中にできてしまっているというか、 RDで書けば、あとは、HTMLになってしまうと思い込んでいるというか、 なんかそんな気がします。


8月09日()

 台風

台風の影響で、風雨ともに強かったので、1日、家でおとなしくしてました。

LL Saturday に参加された方たちは大丈夫だったのでしょうか。


8月08日(金)

 Java : MD5 チェックサム

java.security.MessageDigestを使えばできるみたいです。


8月06日(水)

 Ruby 1.8.0 リリース

Java:What's New(Javaに関する最新ニュース)(003.008.005) で取り上げられているとは思いませんでした。

Python 2.3 も取り上げられてます。


8月05日(火)

 Ruby 1.8.0

ついにリリースされました。 私のサイトで公開しているRubyUnitとWin32OLEの扱いをどうするか考えなくてはなりません。

という方向で考えてます。

普段は、CSVを使用している私ですが、今回だけ、Ruby 1.8.0をダウンロードしました。


8月04日(月)

 Cygwin

最近、Cygwinを使っていて「それなんですか」と聞かれたこともあります。

別の人には、Cygwinについて説明したら、 「またそんな怪しいものを使ってる」などと言われたこともあります。

Cygwinの知名度って意外と低いんじゃないかと感じたことがあります。

 w3m on Cygwin

ふと思い立ってインストールしました。

configure で Customizeを選択して、必要な機能を取捨選択した以外は、Linuxのときと同じです。 すんなり動きました。(Inline imageは最初からあきらめてますけど。)


8月03日()

 Java: Content-Disposition

ファイル保存のダイアログを出そうとしていろいろやってた件ですが マイクロソフトの技術情報で、 HOWTO: Raise a "File Download" Dialog Box for a Known MIME Type というのを見つけました。

技術情報に従って

response.setHeader("Content-Disposition", "attachment;filename=downloadfile.csv")

とすることにしました。


8月02日()

 今日買った本

 気になったけど買う気は最初からなかった本


8月01日(金)

 『暗い迷宮』(ピーター・ラヴゼイ)

読了。

ダイヤモンド警視がフロスト警部と重なって見えました。

キャラクターが近いというだけじゃなくて、多分、話の展開がモジュラー型であるためでしょう。 正確に言えば、フロスト警部のシリーズ(『夜のフロスト』、『クリスマスのフロスト』)は完全なモジュラー型警察小説で、 『暗い迷宮』は一見、モジュラー型に見えるだけです。 モジュラー型の様相は呈していても、そこはラヴゼイのこと、バラバラで終わる訳がありません。 これら複数の事件が絡まりあって、一つの事件に結びつくのです。 一つの事件へと結びついていくクライマックスへの盛り上げ方は、さすがラヴゼイという感じです。

テレビシリーズのモース警部が登場したり、マックス・カラドスが登場したりするのは、ミステリ読者へのサービスなんでしょうね。

ダイヤモンド警視シリーズにそれを期待する方が悪いんですけど、 『苦い林檎酒』とか『マダム・タッソーがお待ちかね』が好きな私としては、謎解きの面でちょっと物足りません。

事件とは直接関係無い部分で、最後にちょっとびっくりしました。 次の作品でダイヤモンド警視がどうなっているのか、楽しみです。


[トップページへ] [7月] [10月] [過去の雑感へ]