「明日、会社で使える無駄な知識が紹介されました。」とかなんとか言ってますが、実際に使えるんでしょうか?
私は、恥かしくて使えません。
唐突に
XXXX は YYYY なんだよ。
と言っても周囲から浮いてしまうだろうし、「あっ。それ知ってる。昨日、テレビでやってた。」と 言われるのも、秘かにそう思わるのもなんか嫌だし。
ということで、まだ一度もトリビアの泉で得た情報を使ったことはなく、本当にトリビアの泉で得た知識は、トリビアなのでした。 で、トリビアなまま、その知識をいつの間にか忘れているのでした。
結局、待ち切れなくて、いつの間にか眠ってしまいました。 「あと、何分ぐらいでスタートです。」とか言ってくれればいいのに「もうすぐ」しか言わないし。
気づいたら朝でした。
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 homepageがショッキングな見出しで始まってます。
Vim のサイトには Vim trivia : vim online というタイトルのページがある。
...
えーと、何へぇぐらいもらえますか?
暑さのせいかちょっとへばってしまいました。
insert mode で矢印キーやDeleteキーが使えるのですね。 知りませんでした。
でも、私は、insert mode だろうが、コマンドモードだろうが、矢印キーもDeleteキーも使うことはないと思います。
読了。
コウノトリにそのような秘密が隠されていたとは、思いもよりませんでした。 このアイデアには感心してしまいました。
何故、ルイが調査の旅に出ることにしたのかとか、ルイの主張が素直に受け入れられる点とか ご都合主義的なところも見受けられますが、ストーリーテリングのうまさでぐいぐい読ませてくれます。
猟奇的な殺人である必然性が弱く、そういう設定にしなくても良かったんじゃないかと思います。
フランスミステリというと、私はどうしてもセバスチャン・ジャプリゾを思い浮かべます。 幻想的で技巧的な作品という印象を持っているのですが、その手の作品とは全く違う骨太な作品です。
本作とは関係ありませんが、 訳者あとがきの次回作の要約を読んで、トマス・ハリスを連想するのは私だけですか?
殺人者の陳列棚 (ダグラス・ブレストン&リンカーン・チャイルド)
何となく気になったのです。
笑ってしまいました。 三味線の音が頭の中をぐるぐると駆けめぐってます。
読了。
ミステリではありません。(「影牢」はちょっとミステリっぽいです。) 江戸時代を舞台にしたホラー短編集です。怪談と言った方がしっくりくるかも。 「居眠り心中」が一番怖かったです。 幽霊や妖怪より人間の怨念の方が怖いということでしょうか。
『コウノトリの道』(ジャン = クリストフ・グランジェ)
前から気になっていました。とうとう買ってしまいました。文庫で、1000円ですか...。
『はなれわざ』(クリスチアナ・ブランド)
この本、文庫化されてなかったんですね。意外でした。 本格ミステリが好きな方は『ジェゼベルの死』や『緑は危険』などもオススメ。 非常に濃い内容の短篇集『招かれざる客たちのビュッフェ』もいいです。
ブランドの本を読むと、ブランドの登場人物に対する視点が冷たいというか、底意地が悪いなあと、いつも思うのでした。
#!/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回で済むでしょうに。
今週最初のお仕事は、Blaster対策。
最近、Kshとかawkなどを使ったスクリプトを読んでいます。 そのコードがわかりづらくて理解するのに時間がかかってます。 わざとわかりづらく書いているのかと勘繰ってしまうほどです。
意外と正規表現って知られていないのでしょうか?
この前、「秀丸で末尾の一文字を削除する方法無いですか?」と聞かれたので、 「秀丸で正規表現が使えればできるはず」と適当に実演してみせました。
今日も、
abc [xxx] def xxx ; ghi jkl [xxx] mno xxx ; pqr ....
という内容のファイルを
ghi pqr ...
とできないか(各行の先頭から";" の後ろのスペースまでを削除したい。)と聞かれました。
正規表現を使えば、難しくないですよね。
私は、基本的な正規表現しか使えません。 それでも、正規表現というものがあるということを知ってるのと知らないのとでは偉い違いです。
正規表現というものの存在を知っているから、 普段使ったことがない秀丸でも、 正規表現が使えればできるだろうと見当をつけることはできます。 でも正規表現を全く知らないと、そこに到達するのは難しいのかも知れません。
読了。
前半部分は、何の話なんだかさっぱりわかりません。 目まぐるしく場面を切り替えながら、複数のストーリーが語られていきます。 これらのストーリーがどう絡むのかさっぱり見えてこないし、どの話がメインになるのかも全くわかりません。 主人公すら誰なのかよくわかりません。 登場シーンで主人公の一人になるのかと思った人間は、次のシーンであっさり殺されちゃうし。 解説にあるように確かに「手ごわい」です。 複数のストーリーが絡んでくるのは別にいいのですが、メインとなる話は早目にわからないとちょっとしんどいです。
バラバラに語られていた個々のストーリーがどう絡むのか次第に明らかになってくる中盤以降、徐々にテンポが加速され、 そのまま一気にラスト・シーンへとなだれ込みます。 バラバラのストーリーが有機的に結びついていくさまは、ジグソーパズルのピースの1つ1つが埋めるのを眺めるようで、 まるで本格ミステリみたいです。
ただ、伏線が多すぎるし、あまりにも多くのストーリーを絡め過ぎなんじゃないかと思いました。 もう少し話をシンプルにした方が、冒険小説としては、むしろ面白くなったんじゃないかという気がします。
ラストは、あまりにも悲しいです。
「語りに罠をしかけ」ている部分は、どこなのか、よくわかりませんでした。 ひょっとすると、綾辻行人が某作品で使ったトリックと同じトリックのことですか? いや。別にそれは、さほど気にならないんですけど。
Cygwin版ではちゃんと動くのですが、Mingw32版(gcc -mno-cygwin)やVC++ だと駄目な場合があるんです。
RAAのエントリを修正するのを忘れてました。
message loop を呼ばないもので試してみてもらったところ大丈夫との返事をもらったので ヴァージョンアップしました。
あと、atexit で OleUninitialize を呼ぶようにするのもやめにしました。
なお、私のサイトで公開してるのは、1.6.8 用です。 多分、そのうち公開しなくなるでしょう。
commit するときは、
ChangeLog に記入する。
version.h を修正する。
ということになってるらしいです。([ruby-dev:21153]から始まるスレッド)
今回は、version.h は今日の日付になってたので、ChangeLog に記入しただけです。
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
次は、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が動いてくれました。
動作しないsampleを送付してもらいました。 なんかCygwinな環境だとまともに動くような。
Mingw版(gcc -mno-cygwin でコンパイルしたもの)だと駄目っぽいですね。
要は、Win32OLE側でmessage loop を呼ばなきゃいいのですが、 ソースを見ているうちに、OLE_FREE の中で なんで message loop を呼んでいるのかわからなくなってきました。 一体、何を根拠にこんなコードを書いたのかさっぱり思い出せません。 (←過去の自分は、見ず知らずの赤の他人。) 別に必要無いように思えてきたので、削除したものを逆に送付して試してもらうことにしました。 手元では、削除したものでもちゃんと動いています。
以前、発生していたエラーですが OleUninitialize()を呼ぶと死んでしまいます。 試しに、CoInitialize() と CoUninitialize()の組み合わせにしたのですが、それでも駄目でした。
一緒に使うと相性が悪いそうです。 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がメジャーなんでしょうか?
11月には3.0が出るらしい。2004年には、3.1CRがリリースされるらしい。 気軽に試せるマシンがもう1台あればいいのですが...。
なんか最近、Linux関連の情報にも疎くなっているような。
java.util.zip.CRC32を使えばできそうです。
ところで、zipってCRCを使っているんですね。 (圧縮前のファイルの正当性チェックのために使っている模様。←憶測です。)
Ruby関係者の日記のページで LL Saturdayに関係する話題を読むにつけ、 参加できなかったのは残念だなあと思うその一方で、行ったら行ったで台風でえらいことになってたんだから これで良かったのだと完全な負け惜しみと自覚しつつ、思ってみたりする1日でした。 (←いや、油断して申し込みを忘れた自分が悪いのです。)
LL Saturday そのものは、さておき、休憩時間だとか飲み会の席だとかでいろいろ濃い話が聞きたかったです。 (経験上から言わせてもらえば、そっちの方が正式のプログラムより楽しかったりします。 余談ですが、それを正式なプログラムでやろうというのがBOFかなあと思ってます。)
本業のスケジュールとの兼ね合いで、参加はちょっと難しそうな感じです。
HTMLのファイルを修正するときに
((<hogehoge|URL:http://xxx.ne.jp/>))
と思わず書いてしまいました。 Another HTML-lintでチェックしたとき 一瞬何が悪いのかわかりませんでした。
<A HREF="http://xxx.ne.jp/">hogehoge</A>
という書き方をすっかり忘れているというより、 RDとHTMLがごっちゃになっているというか、 RD = HTMLという図式が頭の中にできてしまっているというか、 RDで書けば、あとは、HTMLになってしまうと思い込んでいるというか、 なんかそんな気がします。
台風の影響で、風雨ともに強かったので、1日、家でおとなしくしてました。
LL Saturday に参加された方たちは大丈夫だったのでしょうか。
java.security.MessageDigestを使えばできるみたいです。
Java:What's New(Javaに関する最新ニュース)(003.008.005) で取り上げられているとは思いませんでした。
Python 2.3 も取り上げられてます。
ついにリリースされました。 私のサイトで公開しているRubyUnitとWin32OLEの扱いをどうするか考えなくてはなりません。
RubyUnitの方は、1.8.0標準添付のTest::Unitを使うように勧める。
Win32OLEも1.8.0添付のものを使用してもらい、私のサイトでの公開はやめる。
という方向で考えてます。
普段は、CSVを使用している私ですが、今回だけ、Ruby 1.8.0をダウンロードしました。
最近、Cygwinを使っていて「それなんですか」と聞かれたこともあります。
別の人には、Cygwinについて説明したら、 「またそんな怪しいものを使ってる」などと言われたこともあります。
Cygwinの知名度って意外と低いんじゃないかと感じたことがあります。
ふと思い立ってインストールしました。
configure で Customizeを選択して、必要な機能を取捨選択した以外は、Linuxのときと同じです。 すんなり動きました。(Inline imageは最初からあきらめてますけど。)
ファイル保存のダイアログを出そうとしていろいろやってた件ですが マイクロソフトの技術情報で、 HOWTO: Raise a "File Download" Dialog Box for a Known MIME Type というのを見つけました。
技術情報に従って
response.setHeader("Content-Disposition", "attachment;filename=downloadfile.csv")
とすることにしました。
『硝煙のトランザム』(R・ライアン)
裏表紙の「語りに罠を仕掛け」というフレーズに魅かれて。こういうのに弱いのです。 私の場合、罠に気づかない(読み終わってもどこが罠なのかさっぱりわからない)こともままありますが、 そうならないことを願ってます。
『猫の舌に釘をうて』(都築道夫)
買う気が無かったのは、読んだことがあるからです。
書店で手にしたのは、光文社文庫版です。これ、他の作品も一緒に収録されてるんですね。 まあ、そういう主旨(メインとなる長編と他の作品を一緒に収録する)のシリーズみたいですが、 『猫の舌に釘をうて』でそれをやっちゃいけないと思います。 衝撃が薄れます。 『猫の舌に釘をうて』は他の作品と一緒に収録しちゃ駄目なのです。
『猫の舌に釘をうて・三重露出』というタイトルでも講談社から出ているようですが、これは、もうタイトルからして駄目です。 本のタイトルは絶対『猫の舌に釘をうて』でないと駄目なのです。 一字一句違ってもいけません。
どうしてここまでこだわっているのか気になる人は、講談社文庫版『猫の舌に釘をうて』を入手して読んでみましょう。
内容は、主人公が、事件の犯人でもあり、探偵でもあり、被害者でもある という1人3役に挑戦したトリッキーな作品です。
今じゃ講談社文庫版『猫の舌に釘をうて』を入手するのは難しいんでしょうか。
読了。
ダイヤモンド警視がフロスト警部と重なって見えました。
キャラクターが近いというだけじゃなくて、多分、話の展開がモジュラー型であるためでしょう。 正確に言えば、フロスト警部のシリーズ(『夜のフロスト』、『クリスマスのフロスト』)は完全なモジュラー型警察小説で、 『暗い迷宮』は一見、モジュラー型に見えるだけです。 モジュラー型の様相は呈していても、そこはラヴゼイのこと、バラバラで終わる訳がありません。 これら複数の事件が絡まりあって、一つの事件に結びつくのです。 一つの事件へと結びついていくクライマックスへの盛り上げ方は、さすがラヴゼイという感じです。
テレビシリーズのモース警部が登場したり、マックス・カラドスが登場したりするのは、ミステリ読者へのサービスなんでしょうね。
ダイヤモンド警視シリーズにそれを期待する方が悪いんですけど、 『苦い林檎酒』とか『マダム・タッソーがお待ちかね』が好きな私としては、謎解きの面でちょっと物足りません。
事件とは直接関係無い部分で、最後にちょっとびっくりしました。 次の作品でダイヤモンド警視がどうなっているのか、楽しみです。