トップ 最新 追記

日々の破片

Subscribe with livedoor Reader
著作一覧

2009-05-01

_ 夢の世界へようこそ

はるか昔、子供がまだ子供にも成りきらないころのことだ。

ディズニーのダンボかバンビか、そのあたりのLDを見せていたら、広告のピーターパンにやたら興味を持って、買ってくれと言いだした。

まあ、いいかな。で、ピーターパンのLDを買ってやった。

ピーターパン 【日本語吹き替え版】 [DVD] ANC-008

で、それから毎日、子供はピーターパンを見るようになった。

だが、そんなに毎日欠かさず見るほどおもしろいか?

でも、とにかく、何か見ると言えばピーターパンだ。

一緒に見ているこっちがすべてのセリフを覚え、フック船長とピーターとスミーのトリオ芸をぬいぐるみで見せられるまでになったころ、画面を眺めながら子供がぽつりと言った。

「いつ、迎えに来るんでしょうね」

そして、話を聞き、ダンボだかバンビだかのLDを見直し、ピーターパンの広告で、ナレーションが「ピーターがあなたを夢の世界へご招待します」とか入るのを確認した。思わず、抱っこしてやったのは言うまでもない。

というエピソードを女の子の宇宙冒険を読んでいて脈絡もなく、思い出した。

たったひとつの冴えたやりかた 改訳版(ジェイムズ・ティプトリー・ジュニア/浅倉久志)

(でもおれは文庫版のほうを買った。ただ、つうかではなくっていうかにしたいな。っていうか、おれは最後にエイリアンの名前を「静かな声」で付け加えたのは親父だと思うがそこは技術的になんとも言えない嫌な感じを受けたが、しょうがあるまい)

_ 正しい情報隠蔽

島田さんからもらったプロダクティブ・プログラマを読んでいたら、実にわかりやすいデメテル則の説明が出ていたので感心した。

プロダクティブ・プログラマ -プログラマのための生産性向上術(Neal Ford/島田 浩二 (監訳)/夏目 大)
「メソッド呼び出しに"."を2つ以上使うな」

これこそ情報隠蔽とは具体的にどういうことかということを示すものだ(注:多分、著者のオリジナルな意見というわけではない。どこかで見た覚えはある)。

一般に、次のAPIはあまり良くないとされている。

public ArrayList<String> getNames();

代わりに次を利用しろ、と言われる(し、多くの場合でおれも言う)。

public List<String> getNames();

これはなぜかというと、このメソッドの実装の自由度を上げたいからだ。とは言うものの、よほどの要素数を持たない限り、今ではArrayList以外を利用する意味はないような気はするが、それは別の話だ。

そしてご存じなんでもprivateフィールド主義者がくる。

彼らは、privateとフィールドにつけることが情報隠蔽であり、つまりカプセル化だと無邪気に信じる。

public class Foo {
    public List<String> getNames() {
        ...
    }
}

彼らはFooのインスタンスを内包するクラスBarを次のように実装する。

public class Bar {
    private Foo foo;
    public Foo getFoo() {
        assert foo != null;
        reutrn foo;
    }
}

でも、これは全然、情報を隠蔽していない。

なぜか? Barクラスを利用してみよう。

Bar bar = new Bar();
Foo foo = bar.getFoo();  // 強調のために分割したが、次行と合わせて"."2個以上ということだ。
for (String name : foo.getNames()) {
    ...
}

えーと、これって、BarがFooに依存しているという事実を全世界にpublicにしているからこう書かざるを得ないということですね。つまり、Barの現時点の実装ではFooを利用して名前を格納しているという実装詳細に関する情報がまったく隠蔽されていないということだ。

そうではなく、Barは何かの理由でいろいろな名前のコレクションを提供したくて、そのためにFooを内包しているはずだ。もし、Fooではないものを使いたくなったら、いつだって乗り換えられるようにしておくのが正しい設計というものだ。これはArrayList<String>ではなく、List<String>を返すメソッドのほうがよいというのと同じ話だ。

であれば、public Foo getFoo(); などというAPIが出てくるわけがない。

package com.example.foobar.blabla;
public Bar {
    Foo foo; // blablaの仲間は使って良い
    public List<String> getNames() {
        return foo.getNames();
    }
}

こうでなくては。

そしてある春の日、Fooがバギーで全然だめなことがわかる。Barは名前コレクションの自前実装が求められる。

public Bar {
    ArrayList<String> names;
    public List<String> getNames() {
        return new ArrayList<String>(names); // read-only の場合
    }
}

Fooを返すようにAPIを切っていたら、もちろん、こういうことはできない。

public Bar {
    ArrayList<String> names;
    public Foo getFoo() {
        Foo foo = new Foo();
        // リフレクションを駆使してfooをクラックして解析した結果から求めたインスタンス変数にnamesのコピーを設定する
        return foo;
    }
}

まあ、やればできるけど、全然プロダクティブじゃないね。

それとは別に、ここでコンテキストを考える、ということも考えなければだめだ。

値オブジェクトの値オブジェクトというようなものが、必要となることがあるからだ。別に値オブジェクトではなくとも構わないけど。

public class Hoi {
    public String getA() { ... }
    public String getB() { ... }
    ...

値オブジェクトHoiを内包するクラスChoiを考えてみる。

コンテキストを無視して、上に書いたデメテル信者は次のように実装する。

public class Choi {
    public String getA() { return hoi.getA(); }
    ...
    public String getAA() { return fieldAA; }
    ...
}

そして、Choiを内包するProクラスを次のように実装する。

public class Pro {
    public String getA() { return choi.getA(); }
    ...
    public String getAA() { return choi.getAA(); }
    ...
    public String getAAA() { return fieldAAA; }
    ...
}

だから信者ってのはだめなんだよ。

でも、彼らの信念は固い。たったひとつの冴えない規約(内包したオブジェクトを直接返すの禁止!)を闇雲に信心すれば、実装時に何も判断しなくて済むから、高効率的だと信じ込んでいるからだ。でも、全然、効率的にはぱっとしないと、上のChoiだのProだのを眺めれば思うのだが。

「いえ、Eclipseを使えば簡単に実装できます」

まさしく、プロダクティブだな。4種の兵隊のうち、勤勉でしかも……ということか。

本日のツッコミ(全5件) [ツッコミを入れる]

Before...

_ so [こんにちは。どうもありがとうございます。 孫子のは「無謀・慎重」「有能・無能」だったと思ったんですが(無能で無謀な..]

_ かくたに [デメテルと聞いて! 「他で読んだかも」は『ThoughtWorksアンソロジー』のオブジェクト指向エクササイズですか..]

_ arton [soさん、孫子にもあるんですね。ドイツ周辺では中国ブームがあったはずなので、それが元ネタかも知れませんよ。]


2009-05-02

_ プロダクティブ・プログラマの続き

なんか、見渡した感じ、第1部の評判がよくないように感じたんだけど、そんなに誰もがレディなのか?

とくに、第5章の「正準化」(いや、でもこの訳はあまり良いとは思えない。Canonicalityのcanonicalは用語として「正準」と訳されているようだが、たとえばcanonical cordinateとか。ここは、「正規化」にしたほうが良い気がする。だって、この本の、少なくとも5章の対象はむしろSIerや開発マネージャとかじゃないかなぁ。だったら、データベースの「正規化」は少なくとも言葉/知識として脳内辞書に持っていて、それが重複した余分なものを省くことだということはわかっていると思うからだ)は、涙が出るほど、正しく知っておくべきことばかりだ。

すると、途端に、アプリケーションのビルドができなくなりました。

ううむ、ごめんなさい。ある時期のPlatform SDKをVisutal Studioのincludeとlibの参照パスに加えないと、確かにビルドできませんな、みたいな経験があれば、いやでもこの問題には向きあうことになる。ならないのか?

いかに、build.xmlをうまく組んで、build.propertiesに自分の環境の〜のパスを設定して、というようなお膳立てをしてやったり、何をどのディレクトリへ入れてパスの設定をこうしてというようなことをWikiに書いてみてしばらく様子見て、同じことするバッチファイルにしてみたり、というように手順化し、そこから自動化し、というようなことは、おれ(たち)もやってるんだから、みんなもやっているとは思うが、それでも世の中は広いから、こういう本で説明してあることは良いことだ。

だから、この本は新人教育に使ったりするといいと思うな。そうすれば、

・ライブラリの管理と配布にバージョン管理システムを利用する

・ビルドマシンの正規化

・エディターの設定の正規化(Eclipseのタブの空白数の設定とかだ、とは書いていない)

・ホワイトボードはデジカメとペアで使う

とかを、自分の言葉で説明しなくても済むわけだ。なんとプロダクティブ。

あるいは、2章に出てくるエディタのレコーダマクロを使え――つまり^X-(、^X-)とか。そういえば、知り合いのExcel VBAの達人は、まずマクロ記録モードにして典型的な操作を実行して、そのマクロとして吐かれたVBAを元にマクロを作っているが、そういった確かに、知っている人は誰でも知っていて、しかも実践している小技の数々が載っているだけと言えばその通りではあるけれど、でも、それはつまるところ、この本には現実に役立つことが載っているってことじゃん。

プロダクティブ・プログラマ -プログラマのための生産性向上術(Neal Ford/島田 浩二 (監訳)/夏目 大)

だから、一見すると、リファクタリング・ウェットウェアと同様に、読む人には役に立たず、読まない人の役に立つ本のように思えるかも知れないが、でも、全然違う。リファクタリング・ウェットウェアを読まない人に読ませるのは、折伏といってビジネスの世界では褒められるものではないが、プロダクティブ・プログラマを読まない人に読ませるのは、教育といってビジネスの世界では普通のことだ。

本日のツッコミ(全2件) [ツッコミを入れる]

_ しまだ [第5章は同じ様に(その方が直感的だと)考えて一度「正規化」で全部訳していたのですが、最後の最後の段階で「でもこれだと..]

_ arton [お疲れ様でした。苦言も書きましたが、読みやすく/理解しやすく仕上がっていると思いますよ。 >normalizatio..]


2009-05-03

_ Windowsのデバッグ

アスキーの嘉平さんからもらったので、ちゃんと読んでから紹介しようと思ったのだが、プロダクティブ・プログラマや、リファクタリング・ウェットウェアと違って、頭から読む本じゃないや。というわけで、とりあえずぱらぱらと見終わったので、さっさと紹介してしまおう。

Windowsデバッグの極意 ツールを使いこなして、バグハント!(Mario Hewardt/Daniel Pravat/長尾 高弘)

名前の通り、Windowsのデバッグに特化した本で、分厚い。約800ページある。訳はロングテール長尾さんなので、普通に読める普通の日本語。装丁は他の極意本(ダンプとか)とそっくりなので紛らわしいが、まあそういうものかと。書いているのは、MSのシニアデザインエンジニアの人たち。デザインエンジニアって、設計技師と訳したほうが正しいイメージなのかも。

で、一言で紹介すれば、この本は、各種障害発見時のkd(コマンドラインのカーネルモードデバッガ)を使った追っかけ方の解説だ(ユーザモードデバッガについても説明されていることは当然として)。

ほとんどのアプリケーションデベロッパはカーネルデバッガを使おうとはしないのだが、それは複雑すぎるということではなく、不要に感じられるからである。だが、「デバッグのシナリオ」や他の章で詳細を示すが、カーネルデバッガを使うのが一番自然な場合もある。これらの状況では、カーネルデバッガを使う以外の方法は回り道になりかえって高くついてしまう。

では、どういう場合か。目次から。

2.5.1 非対話的プロセス(サービスやCOMサーバー)のデバッグ

というわけで、実際、もうこの分野しか残っていない。だって、マネージドで作っている限り、この世界に落ちる必要はほとんどないからだ。

しかし、まさにこれが、今デバッグしたいもののほとんどかも知れない。

という点から、本書を買うべきなのは、アンマネージドの世界で生きる組み込みの人、ネットワーク用に高速サーバとか作っている人、マネージドの人のためにCOM(の必要は必ずしもないけど)外部プロセスサーバを作っている人。あと、Windowsの内側についての情報を集めている人。Visutal Studioのデバッガに何の不満もない人には別に不要でしょう(だが、アンマネージドでC/C++プログラミングをしているなら、手元に置いておいたほうが良いかも知れない)。あと、Visual Studioの恩恵に預かれないCygwinやMingwの人にも役立つと思うよ。ここで説明されているデバッガ群は無料の意味でフリーだから(次の行にリンクを張っておいた)。

本書の構成は、最初がツールの説明と、コンソールベースデバッガの基本的な使い方の説明。デバッグツールとシンボル

次に、デバッガの秘密と称して、デバッガとはどんなもので何をできるかについての読み物。それにしても、デバッガのためにいろいろな割り込み(フックと呼ぶべきか)をWindowsが用意しているのには感心する。このあたりは、WindowsというOSについて知るのにもよさそうな情報源。

ここまでで全体の1/4。

そして、以下、シナリオと解決(デバッガの操作と見方、関連する構造体の説明や、Windowsの仕組み解説、そして重要なのはどうやって防止するかの情報)が順に続く。

・メモリ破壊パート1 スタック

・メモリ破壊パート2 ヒープ

・セキュリティ (DCOMを使っていたころに、これがあったらなぁ)

インパーソネートのボーダーのあたり

・プロセス間通信

この章は、すごく重要で、LPC(LRPCのベースとなるWindowsのアンドキュメンテッドなプロセス間通信のインフラ)の状態の見方や追い方などが出ている。何が重要かというと、アンドキュメンテッドな情報のうちデバッガが見せられるところについては、意味が書いてあるからだ。

・リソースリーク

ここはおもしろい。デバッグプロセスの概要として、追っかけ方が手順化されている。

・同期

まあ、これは当然必要。スレッドの同期バグの見つけ方。この章もデバッグプロセスの概要として、追っかけ方が手順化されている。

ここまでで3/4。残りは高度なトピックとしてデバッガの拡張方法や、64ビットWindows、ポストモータムのいじり方、Vista(UACとか)。

良い値段だが、MSDN Subscriptionを購入できる個人や組織にとっては得られる情報に比較すると大した価格ではないと思う。

それにしても良い時代だな。シンボル情報をインターネットを通じて取り寄せて、表示できるとか。

追記:思い出した。タイポ:P.405 1個所「RPC」を「RCP」と打っているところがある。


2009-05-04

_ モノの値段

音楽と建築 (1975年)(ヤニス・クセナキス/高橋 悠治)

約30000円。

ノモスアルファの手書き楽譜付き。

ノモスアルファは、計算によって求めた音の動きに対しクセナキスが人間の手で修正を加えた音楽。

クセナキスの音楽はすべてそうやって機械が出した結果に対して人間が仕上げを施す。

ロボットが握った寿司の上にタンポポを飾るのが作曲者の使命なのか、いや、式を作るところが使命なのか、巧妙な中抜き。

問屋の作業を機械に任せる。

この方法はあまりうまくいかなかったのではないか。

抽象的なものを作曲家が楽譜として形式化する。

その形式化された情報を演奏家が演奏することで再度抽象化する。

その抽象化された情報を聴衆が聴く。鼓膜の振動はどのように脳内で処理されるのだろうか? それは作曲家が最初に夢見た抽象なのか、それとも演奏家が読み取った形式化された情報なのか。

スコアリーディングは空気の振動を媒介せずに、直接脳内で音を構成する。これはいったいなんなのだろうか。


2009-05-05

_ この世界はひどいところだけど、死ぬ気はないね

僕が好きな音楽家といえば、バッハとバルトークと、それになんといってもケヴィン・ローランドだ。

どのくらい好きかと言えば、こんなに趣味の悪いジャケットのCDを後生大事に抱え込んでるくらいだ。

マイ・ビューティー(ケヴィン・ローランド)

最高の音楽に最低のカバーアート。許せないね。

マイ・ビューティーではおどおどした薄気味悪い▽だが、元々はデキシーズ・ミッドナイト・ランナーズといういかしたブラスバンドを率いて、最高の音楽を奏でてた。

若き魂の反逆児を求めて(デキシーズ・ミッドナイト・ランナーズ)

こいつの一曲目のバーニングダウンチャートのカッコよさときたら。最初にラジオをチューンする音から始まる。ディープパープル……だめだめ、ビルネルソン……だめだめ、ピストルズ……だめだめ、スペシャルズ……だめだめ、こんなの焼き払っちまえ、おー! でブラスがパパパッパパーパーパパパパパーと始まる。オーティスレディングかい?

で、次にはいきなりスタイルが変わって、フィドルを弾きながら踊り狂っていた。なんじゃこりゃと思う間もなく世界的なヒットとなる。カーモナイリーンちゃらちゃらーというメロディはどこの街角でも聴けたものだ。

カモン・アイリーン(デキシーズ・ミッドナイト・ランナーズ)

妙にメジャーになったなぁ、と思いながらもある日、石丸電機で3枚目を買う、というか、また雰囲気が全然違うのだが。えらく渋い。

Don't Stand Me Down(Dexy's Midnight Runners)

オリジナルジャケットは茶色くて、当時はやったエンニオモリコーネのユダヤギャングの映画の雰囲気。

ジェームズウッズとロバートデニーロのやつだ。

ワンス・アポン・ア・タイム・イン・アメリカ [DVD](セルジオ・レオーネ/エンニオ・モリコーネ)

映画ははやったし、そっくり名前をちょうだいしたシンプルマインズはビッグになった。

Once Upon a Time(Simple Minds)

しかしデキシーズはこれっきりで打ち止めてしまった。よほどセールスも振るわなかったのか、書影を見ての通り、日本版CDも出ないありさま(石丸で買ったLPは日本盤だったが、今は愛の列車に乗って行ってしまった)だし、ジャケットも差し替えになっている。

1作目はブラス、2作目はフィドル、そして3作目では弦楽隊。どれほど腰が落ち着かない野郎なのか。多分、それはどうでも良くて、この男は自分の歌を聴かせたいだけなんだろう。

で、ケヴィンローランドはどうなったかというとクスリに溺れてしまったらしいというか、元々このタイプの人にありがちなことではあるが、中毒になりやすかったんじゃないなか。

で、比較的好きなソロ1作目もあるのだが、大して成功しなかったらしい。2回成功しないと沈むことになる。

で、薬を抜いて再起を図ったのがマイ・ビューティーだが、どんなに内容が良くても、あのジャケットじゃ誰も買わないよ。で、まさにその通りのセールスだったようだ。

だが、実にすばらしい。ついに、バックバンドは単なるムード歌謡曲バンドというか赤坂のナイトクラブバンドというかポールモーリアというか、どうでも良い音楽隊になってしまったし、曲はすべて他人のカバーだ。だが、他の誰にもまねできない歌がある。

このCDの中に、リフレクション・オブ・マイ・ライフというのがあって、オリジナルはマーマレードというどうしようもない名前のイギリスのバンドなのだが、これが実に良い曲だ。

オリジナルのマーマレード

マーマレードは甘いが、でもそれほど幸福な詩でもない。しかし仄明るくないこともない。

The world is a bad place, a bad place

A terrible place to live, oh, but I don't wanna die

なんというか、これって腐ってもニューウェーブっぽい。イギリス固有のバンドのカバーってところが。

ちょっと例をあげても、マッドネスのイットマストビーラブ(ラビ・シフル読み方わからないけど)、ストラングラーズのオールナイトオールデイズ(キンクス)、ギャングオブフォーの朝日のあたる家(アニマルズ)とかだ。もっとも他には知らないけど。

で、ケヴィンローランドは今も音楽をやっている。しかも、マイスペースに公式サイトも持っている。

ここでは、マイ・ビューティに収録されているラグ・ドールなどが聴ける。

のは良いのだが、Youtubeに置いてあるMy Life In Englandのライブのビデオを貼っているのだが、これがクリックすると「利用規約に違反しているため、この動画は削除されました」と表示される。はて。


2009-05-06

_ ペディア

pediaで辞書を引くとpediarchyとか、小児なんとかがいっぱいひっかかるので、それ単体で意味は(少なくとも英語では)持たず、接尾辞として使ってはじめて、「〜知識の集合」みたいに利用できるのかなぁ。

Oxford Advanced Learner's Dictionaryで「pedia」を引くと、有無を言わさずencyclopediaに飛ばされる。

まあ、それはわりとどうでも良いといえば良くて、確かに、クォーターパウンダーについて知識を集めてどうしたというようなものは、クォーターパウンダーペディアと呼ぶべきだよなぁ、と江渡さんの呟きを読んで思った。

それとも、「集合知の発露の場」というような意味で使っているのかも知れない(なんちゃらコンテストの結果が反映されるならそんな感じになるのだろう)。それならそれなりに間違ってはいないようにも思う。

ただ、いずれにしても、「編集可能」という要素が欠落したのは間違いなさそうだ。

おもしろい。

ちょっと前までは歌というのは歌うものだった。刈り入れの時に唄い、漁をしながら唄い、子守をしながら唄う。

しかし、今ではそういう編集可能性はほとんど失って(学校教育と、もっともカラオケという娯楽はあるようだけど、編集可能とは思えないな。独自性を加えると、悪い点がつくんだろ?)、購入したり拾ってきたりして消費するものになった。

詩のほうの歌もそうだな。自分で詠むものじゃなくて消費の対象で、批評はしても編集はしない。

編集権がみんなの手から一部に集中することを言いかえると、それは管理ということで、どんな分野でもなぜか最終的には管理者が管理することになる。政治もそうだし暴力もそうだし食い物もそうだ。

知識もそうなったということだ。とっくのむかしにそうなっていたのが追認されただけかも。

本日のツッコミ(全2件) [ツッコミを入れる]

_ kdmsnr [なんか嫌な感じの誤用ですねぇ。"携帯"が電話機を指すみたいな。 pediaの語源は"education"だそうです..]

_ arton [educationなのか。ありがとう!]


2009-05-07

_ 一知半解

一番始末に負えないんだよなぁ。で、戒めのお話はエパミナンデスとかいっぱいある。

追記:エパミナンダスだす。


2009-05-08

_ MVCの呪縛

tagLibは、Viewの一部なのか、それともまったく独立した存在か、そのあたりについての議論とか。


2009-05-09

_ おにへー

さてほとんど空になった本棚には、後は捨てる本が残るだけだが、買った覚えも読んだ覚えもない本もある(砂の惑星もそうだったが)。

鬼平犯科帳〈1〉 (文春文庫)(池波 正太郎)

それなりに有名だし、飯がうまそうだとか、文章が闊達であるとか、そのあたりの評判を耳にして買ったのだろうけど。

捨てる前に読むか、と読んでみた。どうも、一度読んだような気もするが、印象に薄い。

というよりも、おれは、これは好きではないな。

確かに、飯はうまそうに感じるところもある。ヌタとか出てくると。それってこちらの記憶を甦らせる記号の使い方ではなかろうか。ってことは、数年のうちに、絶滅するタイプのうまそうさ、というやつだろう。

盗人たちのおはたらきは悪くはないが、これもちょっと違うんでないかいという感じがするのは、ぬるいからだな。いや、どれだけの良い盗賊でも売られれば磔とか獄門だからぬるくはないのに、なんというか危機意識がない。

退屈というほどひどいわけではなく、読めばそれなりに読めるし、それなりに感ずるところもあるが、おもしろくない(つまらなくはない)。ソリテア程度の暇つぶしというところか。あと、女性に対する地の書き方がすごくはなにつく(おれのポリティカルなコレクトネスがねすられて不快になる)。

というわけで、最後まで読んだので、やはり捨てることになる。続きは読まない。


2009-05-10

_ カモメに飛ぶことを教えたネコ

子供が読めというので読んだ。

港町に生きる誇り高きネコたちが、ひょんなことからカモメの卵を食わずに、ヒナを育て、飛ぶことを教え、そして別れるまでを描いた感動の物語。

と要約するとくずのような話だが、読んでいる最中は一点を除けば、えらくおもしろかった。問題の一点は、あまりに緑の党的に説教臭いところだ。いや、重油を捨ててはいかんだろうが、ちょっとしつこい。

カモメに飛ぶことを教えた猫 (白水Uブックス)(ルイス・セプルベダ/河野 万里子)

挿絵の小さな目のカモメがとても良いが、主人公の太った黒猫がなかなかにいかしている。自分がしていることに懐疑的になりながらも、誠実に約束を果たす。その誠実さが港町に生きる誇り高きネコ、という設定そのもの。ああ、緑の党的説教のほかに、大しておもしろくもない大佐と秘書のネコこんびのどつき漫才もちょっと好みではないかな。

とアラもおれにはあるが、でもいっきに読んでしまったおもしろさ。物語のドライブ感はいいし、最後は反則のようでもあり、そうは言っても言葉は重要でもあり、気持ちよい。

また、真に重要なテーマが全然語られなくて、最後にしまったとばかりに自分たちで説明してしまうのが、そこについては説教臭くなく、いい感じだ。つまり、自分たちとまったく異なるものを受け入れるっていうテーマ。

それにしても、ネコだな。


2009-05-11

_ 混乱した知識は知ったかと変わらない

セルが聴きたくなったところに、ブックオフに寄ることになったので、適当に探したら適当にドボルジャックはおれのことかとドボルザークのイギリスがあったので買って、すぐにカーステレオで聴いた。

ドヴォルザーク:交響曲第8番(セル(ジョージ))

CBSだと思ったらいつのまにかEMIになっていた。このあたりの契約とかどういう仕組みなんだろうか(などと書いてからアマゾン評を読んだら、珍しいEMIのための録音とか書いてある。どうやらCBSとの契約が切れた後なのか、とにかく最晩年のものらしい)

で、子どもに、こいつはイギリスって題で、何しろ新世界のおっさんの作品だからイギリスの心象風景の音像化だと思うだろうが、全然それは的外れで、イングリッシュホルンを使ったからなんだぜ、とか得意気に教えてやる。

が、イングリッシュホルンらしき音は別に聴こえない。3楽章(えらく有名なチャチャーチャチャチャチャというやつ)の途中で印象的に木管が入ったので、これがそうかなぁもごもごとか言うが、ホルンという名前がついているにしては妙に音域が高くないかと指摘される。うーん、そうかも。

で、4楽章の先頭で異様に印象的なパンパパパーパパーパパパーパが入るので、これかなぁ、でもトランペットに聴こえるよなぁとかえらく気弱になって、で、車が止まったところでライナーを読ませたら、なんということなく普段の楽譜屋の代わりに英国の楽譜屋から出版したのでイギリスという題で呼ばれているとか書いてあった。

で、まったくの覚え違いですまん、と謝ったのは良いとして、ではイングリッシュホルンが印象的でイギリスとかいう名前がついた曲っていう記憶の元ネタはなんだろうか、と考え込む。わからないが、どうも新世界交響曲で使われていることと、イギリスという名前によって、模造記憶が埋め込まれたらしい。

それはそれとして、特に4楽章の自由自在なテンポ設定とか裏で適度にポルタメントがかかる弦とか、やっぱりセルはいいなぁとか。(あと、なんでか知らないが循環主題って好きなのだ。多分構造が見やすいからだろう)

_ ディズニーのゲーム

子どもが、ディズニーのゲームのティンカーベルのやつがおもしろいからお前もやれとか抜かす。

まあ、いいかなぁとやってみたら、確かにおもしろい。

フェアリーズ ウォータードロップ

小、中、大、満の4つの状態を取る水滴が升目に並んでいる。升目に水滴を1回につき1滴だけ落とせる(全部で20滴くらい持った状態で開始)。各状態は1滴につき、1状態大きくなる。満状態の水滴に1滴を追加すると、上下左右4方向に1滴を発射し消失する。すべて消失したらクリア。

通常はクリアで+2。

あらかじめ、水滴の状態を発射される水滴による追加を考慮して設定しておくと、1水滴で(それまでの準備分は別)完全にクリアできて楽しい。ただし、ボーナスポイントは付かない(輻輳による水滴の消失は得点となり、追加の水滴を得られる)。

最初、単に満状態の水滴に落とす方法をやるが、あっというまに手持ちの水滴がなくなる(だいたい5面目くらい)。しかし、うまく設定してから水滴を落とすと、輻輳によって得点が入ることもあって、全25レベルをクリアできる(できた)。

しかし、最適には程遠く、無駄な発射がまだ行われている。

本日のツッコミ(全4件) [ツッコミを入れる]

Before...

_ arton [なるほど有名なゲームなんですね。名前もそのまんまだし。]

_ soutaro [>イングリッシュホルン そういう説があったのか、と一瞬びっくりしました。 Wikipediaによると、2小節半だけ..]

_ arton [2小節半(と半を書いた奴も書いた奴だという気もするけど)だの、シンバルの一撃だの、よほどその楽器の音色にこだわりがあ..]


2009-05-12

_ おれはドボルザークの交響曲の最後は好きじゃない

イギリスの最後があまりにしつこいのだが、それでもまあ、おもしろいと感じる余裕がある昨今。

しかし、その後に新世界を聴き、最後があまりにしつこいので、いい加減にうんざりしてくる。

で、よくよく考えると、ブルックナーの8番の最後って、いかしているなぁと。ソーミレド(終了)


2009-05-13

_ Ruby-1.9.1-p129

Ruby-1.9.1-p129のWindows Installer パッケージを作成しました。

ダウンロードページ

ファイル(13,919,744バイト, MD5 checksum: 9398212861259a204d76002107b2bdba)

にゃすさんのVisualuRuby(SWin(090208))および「るりまプロジェクト」の最新のRuby-1.9.1リファレンス(chm版)を同梱しています。

関係各位に感謝します。

# 今後1週間くらい、当ホストは断続的に落ちたり止まったりDNS引けなくなったりしそうなので、ダウンロードしたファイルはシェアしていただけると助かります。


2009-05-14

_ itcho~me

地下鉄の駅で今気付いたが、一丁目のローマ字表記に違和感がある。

oの上に長音記号(マクロンというのか……知らなかった)があるから、まっとうなローマ字だと感じるから、違和感は促音の部分、tchoから来るようだ。

でもchoはヘボン式では正しいから、そこではない。内閣訓示式のtyoのほうがむしろ特異だ。

そこで、違和感の出所が、tcにあることが明確になった。

ローマ字かな変換脳になってしまったようだ。

(と考えたのだが、tcは、駅名標ヘボン式という、これまた特異な規格だった。と納得しかけたが、更に調べたら、ヘボン式はみなtcだった。難しい)


2009-05-15

_ in the name of

かわいいなぁ。天使の声ってのはこういうものだ。

ストップで不揃いに、なんか恥ずかしげに上がる右手とか。

強烈な睫。歯の白さ。インザネームの部分のルバートとか。曲も名曲。

それにしてもこのビデオはおもしろい。グリコのポーズの2回目で突然ストップするとことか。

ラブチャイルドも入ってるから、このあたりを買うのがよさそうだ。

ダイアナ・ロス&シュープリームス・ゴールド(ダイアナ・ロス&シュープリームス/ザ・テンプテーションズ)

でもジャケットはこっちかな。

ダイアナ・ロス&スプリ-ムス・アンソロジー(ダイアナ・ロス&シュープリームス)

(スプリームスという表記はアマゾン固有なのかなぁーージャケットはちゃんとシュープリームスになっているし)

追記:ところがなぜか、シュープリームスをモデルにしたミュージカルを買ってしまった。

ドリームガールズ スペシャル・コレクターズ・エディション [DVD]


2009-05-16

_ ナポリ

ロイヤルコペンハーゲン(というような名前の)バレエ団のナポリを観に上野。

最悪の音楽。同じ凡庸なメロディーが管弦楽の彩も作らずに延々と単調に繰り返されるだけ。序曲の時点でうんざりして、そのまま寝てしまった。

幕間で子どもからえらく面白いのにばかじゃないかとか言われて、音楽を無視してまじめに観ることにする。

おもしろい。くだらないということもできるのだが、早変わりで海の精と村娘を行ったり来たり。桃太郎の話のような。というか、なんで貢物をもらえるんだか。貢物をやったから行かないでくれというのを無視したということなのかな。

で、第3幕。あいかわらず、見よ音楽がゴミのようだ。

しかし、踊りは変化があるし、パントマイムもおもしろい。

修道士の背の高さと漁師の背の低さの絶妙のバランス。水色の友人がやってくるところ、青い友人の技巧的なばたばたした踊り。

ダイナミックでいきいきとした感じで、なるほど、踊りを観ていれば退屈はしない。ちょっとでも音楽に耳を傾けるとその瞬間に死の退屈が待っているけど。

というわけで、実にバランスが悪い作品で、滅多に上演されないのもしょうがないな。2幕目のぶっ飛び具合ならシルヴィアでOK。

とか文句を垂れたわりには、ロビーで売っていたので買ってしまった。が、20年前の映像なので振付師含めてまったく重ならない。早変わりのためのお立ち台が無いのにちょっとがっかり。伝統芸能でもちゃんと進化しているんだな。

ナポリ 全3幕 [DVD]

(ようは、バヤディールのインド、蝶々夫人の日本、ジャングル大帝のアフリカ、ラボエームのパリという勘違いを含む異国情緒のバレエということ)


2009-05-17

_ グラントリノ

イーストウッドの最後の主演作らしい自演作。

ほぼすべて観たつもりだが(マディソン街とか見損なったのはあるけれど)、最高傑作だと思った。いろんな面から。

まずは、ウェスタンの文脈で。あれは、絶体絶命の状況で殴りこみに行くのがクライマックスだ。オーソドックスなウェスタンであればまともな撃ち合いとなる(ドクホリディは咳き込んで撃たれるとか……平手造酒みたいだな、パイクとボーグナインは行くか、当然だと掛け合いながら歩き出す)。その面から。

その一方でマカロニウェスタンの文脈で。たとえば、鉄板を腹にまきつけたのは若きイーストウッド。両手が使えない状態なのがフランコネロ(だと思ったけどあやしい)。孤立無援の心やさしきならず者が知恵を絞って勝負に挑む。その面から。

いずれの面からも、グラントリノは究極の選択だろう。脚本もすばらしいのだと思う。

荒野の用心棒 完全版 スペシャル・エディション [DVD](セルジオ・レオーネ)

続 荒野の用心棒 [DVD]

まるで廳徳のように棺桶を引きづりながらフランコ・ネロが荒野をさすらうおっかないウェスタン

下世話さも捨てがたい。人種ジョークとか、ばかでっかな文字盤の時計のプレゼントとか、懺悔とか。わかりやすいユーモアの数々。

いいかい坊や、その場にいないやつの悪口を言うんだぜ、とか教育するんだが、なんとアメリカという国は空気重要な社会であることか。それはそうだ。なぜなら地球の表面は空気で覆われているのだからしょうがない。

葬式で始まり葬式で終わる枠組み。

過去の記憶は今やフラッシュバックすらなくただ語るだけ。

磨かれた車。

見事に道具で飾られたガレージ(これはスペースカウボーイか)。

朝鮮戦争(直截的にはハートブレイクリッジだが、その背後には赤い大きな1の軍曹の記憶がよみがえる。2つほど)

フリーザーの重さの質感と対比(重そうではあるが、タオは淡々と引っ張ってた)。

というか、ごてごてした絵や延々と続きに続くクレジットはごめんと言うわけで、これは映画的な資産を誰が継ぐかという話なのかも。

本日のツッコミ(全2件) [ツッコミを入れる]

_ ma2 [手をつぶされたのはフランコ・ネロ(ジャンゴ)でしたね。 グラン・トリノの唾吐きはマカロニウェスタンぽかったですね。]

_ arton [そうそう。思い出したけど、婆さんもいい味でした。]


2009-05-18

_ どこがprotected

うーん。
class Foo
  protected
  def foo()
    puts 'foo'
  end
end
class Bar < Foo
  def foo()
    puts 'bar'
  end
end
 
x = Bar.new
x.foo

上のプログラムは動く(1.8.7、1.9.1とも)。ということは、protectedは継承クラスでは維持されないということなんだろう。

そこで次のように変えてみる。

class Foo
  protected
  def foo()
    puts 'foo'
  end
end
class Bar < Foo
  protected   # 追加
  def foo()
    puts 'bar'
  end
end
 
x = Bar.new
x.foo

確かに、そうであって欲しい動作を得られる。

C:\temp>ruby -v protected.rb
ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mswin32]
protected.rb:15: protected method `foo' called for #<+Bar:0x27af420> (NoMethodError)
or)

そこでメソッドbooをFooに追加する。

class Foo
  def boo(f)
    f.foo  # 別のインスタンスのfooを呼ぶ
  end
  protected
  def foo()
    puts 'foo'
  end
end
class Bar < Foo
  protected
  def foo()
    puts 'bar'
  end
end
 
x = Foo.new
x.boo(Foo.new)
x.boo(Bar.new)

実行する。

C:\temp>ruby -v protected.rb
ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-mswin32]
foo  …… OK
protected.rb:3:in `boo': protected method `foo' called for #<Bar:0x1b77504> (NoMethodError)
        from protected.rb:19:in `<main>'

うーむ。どうしろと。最初の例から、protectedは継承されないから継承クラスでprotectedを付けた。しかし、そうすると継承元クラスからの呼び出しもできなくなる。しかしレシーバを指定したいからprivateではなくprotectedにしているのだから、これはどちらかがおかしくはないか(というよりも、継承先で呼び出しが可能なメソッドをprotectedと称するということなんだろうなぁ、きっと)。

おれにとっては、継承先にprotectedが引き継がれることが自然だと思うが、Rubyの考え方ではかくあるのだろう。


2009-05-19

_ NETアプリケーションの最期を看取る

同僚が作ったC#のプログラムが死ぬ。

COMコンポーネントの呼び出しがまずいということはわかっているのだが、とにかく途中でマイクロソフトへ送信するかダイアログが出て、そして何も残らず死ぬ。

こういう状況は以前経験して、そのとき調べた方法をどこかに書いたなぁと裏庭を眺めても出ていない。

で、思い出したが、コーディングの掟の例外の掟のところに書いたのであった。

ハンドルされない例外を受けると規定の動作がMSへの問い合わせとなる。それがいやなら、自分で、ハンドルされない例外ハンドラー(屋上の屋根のような)を設置してやれば良い。ハンドルされない例外ハンドラーはAppDomainが持つので、次のようにする。

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(
    delegate(object sender, UnhandledExceptionEventArgs e)
    {
        Exception ex = (Exception)e.ExceptionObject;
        using (StreamWriter sw = new StreamWriter(Path.Combine(Path.GetTempPath(), AppDomain.CurrentDomain.FriendlyName + ".Log")))
        {
            sw.WriteLine(ex.Message);
            sw.WriteLine(ex.StackTrace);
        }
        Environment.Exit(1);
     });

というわけで、役に立ったのであった。

コーディングの掟(最強作法) 現場でよく見る不可解なJavaコードを一掃せよ! (開発の現場セレクション)(arton/宇野 るいも)

2009-05-20

_ 身動きが取れない時にどう振舞うべきか

artonx.orgが3〜4日ほど、ダウンしていたわけだが、さて、どうするのが正解だっただろうか。

最初は放置を考えていた。メールサーバーが居たら、それはすべきではない(根拠は、今思い返すとわからないなぁ)が、幸いWebサーバとしか使っていないから、DNSが引けなくなるか、仮に引けたとしても接続タイムアウトになるだろう、だったら再試行していりゃそのうちどうにかなるかも、という考えである。

が、待てよ、DDNSを使ってるんだから、DNSが引けなくなるぎりぎりのところで、別のホストが同じIPアドレスの割り当てを受けるかも知れないぞ、と気付く。そりゃお互いに迷惑であろう(相手次第で、どっちが迷惑か決まるが、平均すると、多分、相手が迷惑)。

で、つらつらとno-ipの設定を眺めていたら、オフラインページサービスというのを見つけた。

ページの元ネタ(テキストとアイコン)を用意しておけば、オフラインページを返すサービスだ。

ならば、これを利用するのが筋であろうと、設定した。

が、no-ipのオフラインページは404を返す。

200を返すのは問題外として、404って、それは確かにno-ipのサービスにとっては、リクエストされたページは存在しないから正しいかも知れないけど、それってどうなのだろう? 404は、200に限りなく近いのではなかろうか。要求したページが存在しない=リクエストは正しく、その正しいリクエストを処理して、それは無いと応答しているのだから、クライアントは2度と再試行しないだろうな。

おれがここで想定しているクライアントは、人間ではなく、RSSリーダとかアンテナとかだ。もし、おれがそのてのクライアントを作ったら、404が返ったら、ターゲットから外すように仕様を切ると思う。なぜなら、存在しないという確定した回答が戻っているのだから、それは2度と試さないのが筋(サーバーへ無駄な負荷をかけないという意味で)だと考えられるからだ。

であるならば(おれの考えるクライアントの仕様が正しいという意味)、むしろ、50xを返すほうが良いのではないか。service temporary unavail(ステータスコード調べるの面倒なので無視)あたり。

そういえば、Rubyのhotlinkはビジーだと403を返すのだが、あれもなんだか怪しいステータスのように思える。403が返ったら再試行してはならないのではなかったかな。

と、RFCを読み返さずに(ステータスによって、再試行のshould notなどが書いてあるので、RFCを読むべきであるのだが)書いてみた。

本日のツッコミ(全2件) [ツッコミを入れる]

_  [赤黒木ブームなので、この画像が赤黒木に見えてしまいます。 http://myimages.no-ip.com/dom..]

_ arton [赤黒木はおもしろいですね。(でもあれは柔らかい構成ですよ) http://webpages.ull.es/users..]


2009-05-21

_ ホルン

中学か高校のころ買って暗記はしないまでも相当読み込んだ本が出てきたので子どもにやって、それは良いのだが、さっきちょっと読んでいて驚愕した。

立体クラシック音楽 (1972年)(吉崎 道夫)

古い本だから、ニグロの音楽というような表現があって、そういうのを目にするとなんかすごく嫌な感じを受けるのは、いかにおれが社会的な動物かという証左だなぁとか、はどうでも良くて。

なんとホルンは金管楽器だったのか! つい先日も子どもに金属なのに木管ってのはけっこうあって、ピッコロ、ジャジャマル、フルート、ポロリン、ホルンとかえらそうなことを言った記憶がある。

イングリッシュホルン(というか、読んでいて思い出したがコーラングレのことか。というか、今書いてわかったが、コール・アングレがリエゾンしてコーラングレだな)が木管だというところと、フルートみたく金属製でも木管があるということあたりでごっちゃになり、かつ本来は角笛じゃんというあたりから、いつのまにか、完璧にホルンは木管と思い込んでいた。あー、おそろしい。後で子どもに訂正しておこう。

というわけで、ときどき知識と教養は棚卸して原本と照合しないと、とんでもない不良在庫になっていることがあるので、あぶない。(こないだのイギリスと同じようだが、どうもイギリスが少しでも関係するとやばいのかも。でも夏目漱石はベルリンではなくロンドンに留学したのは間違いない)。


2009-05-22

_ 虎よ!虎よ!

黒澤明を使って映画化しようとしたが、結局リチャードフライシャー(NGなしの職人監督)が手掛けることになった。

そのせいで日本では大ゴケにこけて今では幻の一品。


2009-05-23

_ iPod classicを買う

アマゾンで安売り(と言っても1割引きだけど。白のほうが割引率がでかいのでそっちにした)してたので、買った。

Apple iPod classic 120GB ブラック

120GBあれば、コレクションは全部入るはず。というか入らなければおかしい。

しかしなぜ安売りしてるんだろうか。もしかしたら、classicもSSDになっていくのかな。


2009-05-24

_ 魂を救え

元々は、pigeonとdoveって何が違うのかなぁという疑問から始まった。

もちろん、プリンスを聴いていたのだった。

パープル・レイン(プリンス&ザ・レヴォリューション)

それにしてもこれは傑作だなぁ、とつくづく思うのであった。しかも、ビートに抱かれてだかI DIE 4 Uだかが、人気ゼロの駄作扱いだったり(もちろん映画の中での話だ)。だが、レヴォリューションズのかっこ良さも含めて、おれはこれが好きだなぁ。1999よりもパレードよりもバットマンよりも好きだ。

そこに、パティ・スミスのは雰囲気があるという話が耳に入る。

ランド(1975-2002)~グレイテスト・ヒッツ(パティ・スミス)

うひょー、パティ・スミスがパティ・スミスの歌以外の何物でもない鳩が鳴くときを唄っているというか語っているというか。

そこから、iTSで曲名検索すると、カバーがヒットしまくることを知る。

知ったからにはクリック猿にならざるをえざる。で、ござる。

そして、ばかっぽいボサノバっぽいおされなカバーを知ってしまう。

Nadeahというアーティストの作品だ。

で、そりゃなんだと見てみると、愛しのホーリーウッド(Holywood, mon amour)というアルバムが出てきた。

アーティストはまったく知らないが(というかアルバムはアマゾンにも出ていない)曲は知りまくっているのばかりだ。

Hollywood Mon Amour(Hollywood Mon Amour)

(あった)

ブロンディのコールミー(つまりはジャストアジゴロ)とか、ボウイのキャットピープル(ナスターシャキンスキーバージョン)とか、アメリカじゃないよ(雪男のやつ。パットメセニーとボウイ)とか、坂本龍一の禁色(戦場のメリークリスマスだな)とか、アビュートゥキル(デュランデュランだがこいつは映画は知らないなぁ)、ドンチュー(シンプルマインズのセントエルモスファイアだったような)とか。フットルース(ケニーロギンスの歌なのか、本当に? このアレンジは何がなんでも違う曲なような)。というわけでこりゃすげぇや。

どれもこれも見事なまでに骨抜きのポップミューザック化されている。

すべてのエモーション、あらゆるスピリッツ、しびれるようなソウルを、完全に抜き去った、魂のかけらも感じられない完全無欠な珈琲店音楽。

さっそく、ダウンロードして(ダウンロードして、ダウンロードして、ダウンロードだぜ)聴きまくり。あー、五臓六腑がへろへろに腑抜る心地よさ。

ぜひ、原先生にもこいつを楽しんでいただきたいものだ(とっくに聴いてるかも知れないけど)。

追記:何度も聴いてつくづく理解したが、元の音楽が腑抜ていれば腑抜ているほど、違和感がなく、素晴らしい。つまりアーサーのテーマ(クリスクリストファーソンとは全然異なるクリストファークロス)。これもNadeahというアーティストだ。

追記:ヌーヴェルヴァーグなのか。

さらに追記:拠点(買わなくてもほとんど全部聴けるところがおもしろい)。via Antenna.blog(購読しとこう)


2009-05-25

_ ルーブル

6/14で終了なので、行けるうちに行こうとわりと早起きしたこともあって、9時ごろに上野へ。でも着いたのは10時前というところで、早くも20分待ちの状態。前売りを買っていたので、チケット購入の行列はスキップできた。

いつもは、行列で自動的に流れにのってベルトコンベアみたく画を観るのは不快なので、遠巻きにランダムアクセスするのだが、今回はなんとなくベルトに乗ってみた。

フェルメールのところでえらく滞留する。しょうがないので観察した。

どうも、動作が停止してしまう客が定期的に出現するみたいだ。

すると、後続の人たちは正面からは観られないものの、それなりに観られたわけで、しびれを切らして、停止したすっとこどっこいを追い越す。

すると一瞬、さらにその後ろのベルト上の物体化している人間と、停止したすっとこどっこいの間に隙間ができる。

すると、ランダムアクセスを狙う蛆虫どもがその隙間に殺到する、という不愉快な状態になるのであった。

で、やっと停止状態のかすの呪縛が解けると、蛆虫がその位置まで移動したあと、そのまま固着してしまう。

すると後続の人間が、蛆虫の不快臭にへきえきして迂回して移動する。その瞬間、さらにその後ろの人物と蛆虫の間に隙間があくので、そこへ別の蛆虫が湧き出してくる。

したがって、人間の列はなかなか進まないということのようだった。

蛆虫は5匹以上観察したが、全員、オスだった。うち1匹はメガネを生意気にも人間みたいにしている長髪ぎみのばかい男(女連れだが、連れられているほうは前列には入らない)、残りは大柄な40代から50代のでぶだった。体型と行動には相関関係があるのかも知れない。

それでなかなかフェルメールを観るのには時間がかかった。それにしても実物は小さく、したがって精緻さはとてつもない。

おそろくし印象的だったのは、ミニョンのジョウビタキのやつ。おそるべき自然観察。ル・ナン兄弟の農民のやつ。仄かな楽しさ。ベラスケスの有名なやつ。ほっぺ。コールテ。メタ現実の嚆矢。ペールブリューゲルのLe Feu。火と訳して良いのだろうか? と疑問に思う不可思議な、あ、ちょうどクェイ兄弟のピアノ調律に似たものを感じる光景。ダウの歯を抜く男。握りしめた拳が痛そう。ドルチ。やわらかそう。フォントネイ。鎧の彫金が彫金に見える。

宗教画の赤白青と、自由平等友愛って何か関連があるのだろうか。

あと、思い出したがニレジハージの演奏ですっかり好きになったアッシジの聖フランチェスコ(ロッセリーニの映画も良かったけど)が2枚あって、どっちも気に行ったが、後から出てくるほうに聖痕が書いてあって子どもが十字架に架けられたのかとか真顔で訊くので返答に困る。事実としては困らないからそんなこたないと答えるわけだが、ではなぜ聖痕があるのかと訊かれると、そういうもんなんだろうなぁとしか言えない。というか、それが奇跡なのかな(と、カタログを今読んだりして)。

Ervin Nyiregyhazi at the Opera(Ervin Nyiregházi/Ervin Nyiregyházi)

(っていうか、CBSのハムレットが入ったやつが聴きたいのだが2度と聴けないのだろうか)

本日のツッコミ(全5件) [ツッコミを入れる]

Before...

_ unbe [いえ、不満を述べるばかりで解決したい気持ちはないもののようです。 蛆虫との対比の >したがって、人間の列はなかなか進..]

_ arton [不満? 自分が人間であることの尊厳を味わっている状態の別表現?]

_ unbe [ああ、おもしろいですね。]


2009-05-26

_ 欲張りマッチの使い途

HTTPのメッセージヘッダを正規表現でいじっていて、結果がおかしくて、?の書き忘れに気付いた。ユーザエイジェント値に:が含まれていたからだ。

で、以前にも何か別件で同じことをやったなぁと思い出そうとしても忘れたのだが、はて、欲張りマッチにどんなユースケースがあるか思い付かない。

本日のツッコミ(全2件) [ツッコミを入れる]

_ naruse [> "abcde"[/.*?/] => "" とか。欲張らないマッチが必要な場合はむしろ正規表現が非効率なケースで、..]

_ arton [なるほどぉ >非効率 そういう考え方をすべきなんでしょうね。ありがとう]


2009-05-27

_ ハースとアース

ハースのラヴェルのピアノ曲全集を持っていて、結構、好きだ。左手のための協奏曲は名演じゃないかな。えらく安いうえにぎゅうぎゅうに詰め込まれているので、以前持っていたCDプレイヤーだと再生できなかったが、PowerBook(当時)のiTunesは読み込めて、今ではiPod内でいつでも聴ける。

ラヴェル:ピアノ作品全集(ハース(ウェルナー)/ラヴェル/ガリエラ(アルチェオ)/モンテ・カルロ国立歌劇場管弦楽団)

で、なんとなく、ハースじゃなくてアースと読んでた。ラヴェルの全集を入れるくらいだからフランス人だと思ってたからだ。Haasと書く。

で、アマゾンを眺めていて、アースを見つけて、ふーむ、ドビュッシーが聴きたいなぁとか思いながら、なんとも違和感が。

ラヴェル:ピアノ作品全集(アース(モニク)/ラヴェル/マリンカ(イナ))

ラヴェルのピアノ曲全集だけど、おれが好きな左手が入ってないじゃん。ジャケットが異なるのは再発で変わったとしてもだ。

ところが、名前がモニクとなっていて、女性っぽい。あれ、確か男だったようなとiPod上の表示を見るとヴェルナーとなっていて、全然フランス人っぽい名前ではない。どっちもHaasだけど、民族も違うようだな。

ということもあるんだな。


2009-05-28

_ !!という構文

次のようなコードがあって、一体なんだ? という話。

obj.foobar? !!baz

で、!!という演算子があるかと思ってGoogleで検索したら、いきなり「!! に一致する情報は見つかりませんでした。」と言われる、即座に。

おれの予想。

きっと、obj#foobar?の実装が腐っていて、苦肉の策ではなかろうか?

たとえば、次のようになっている。Javaプログラマとかだとやってもそれほどおかしかない。

def foobar?(o)
  o == true
end

もし、引数がTrueClassのインスタンスかどうかを判定する目的のメソッドであれば、もちろん正しい実装ではある。

でも、真かどうかを判定しているなら、だめだね。

正しく実装すると

def foobar?(o)
  o != nil || o != false
end

でも、ちょっと冗長だ。単純に、

def foobar?(o)
  o
end

でいいじゃん。でも、いずれにしても、== trueとか書いてあるから、!!(否定によってfalseとなり、それを否定することでtrueとなる)としてTrueClassのインスタンスに変換してから引数としてるんじゃないかな。

いずれにしてもだけど、trueという特殊変数は戻り値、メソッドの引数とかにしか利用しないほうが良い。条件式に記述していたら、たいていは潜在的なバグだと言っても良さそうだ。もちろん == falseというのも、nilを考慮していないからだめだけど。

で、そういう怪しい可能性があるメソッドの引数なので、!!二重否定してTrueClassのインスタンス(あるいはFalseClassのインスタンス)に変換してんじゃないかなぁ、

似たようなのに、COMのC++コンポーネントがVBから正しく呼べないTRUE問題ってのもあったな。

HRESULT STDCALL FooBar(LONG baz)
{
  if (baz == TRUE)
    ...
  return S_OK;
}

となっているのを、

Set obj = CreateObject("FooBar")
obj.FooBar True

とか呼び出すケース。VBのBooleanはVARIANT_BOOL(short)で、TrueはVARIANT_TRUE(-1)だということを、C++小僧が知らないという話。

結局、ベストプラクティスとして、偽(0)かどうかで判定するというのが正解だろう。

HRESULT STDCALL FooBar(LONG baz)
{
  if (baz)
    ...
  return S_OK;
}

しかも、この方が==演算子とか書かなくて済むだけ簡潔だ。

_ おれは世界一不幸な少年かも知れないが

動くな、死ね、甦れ!【字幕版】 [VHS](ヴィターリー・カネフスキー)

かって、VHSでは出ていたのか……

本日のツッコミ(全2件) [ツッコミを入れる]

_ naruse [foobar?の実相としては、条件演算子が使えるなら、o ? true : falseが一番楽じゃないですかね。 ま..]

_ arton [条件演算子は楽ですね。でも、true、falseって使わなくてもいいんじゃない? ってのが趣旨だから、単に「o」って..]


2009-05-29

_ しかし君らは本当にバカだなぁ

おれも含まれているのが残念なところだ。でも、それはここでは触れない。

さて、おれは、クールな人々のプログラマティックな闘争の物語が好きだ。それが事実に立脚していればなおさらだ。

したがって、プログラマーのジレンマを読むのは当たり前のことだ。

このジャンルの今までの最高傑作は、『ソフトウェアの限界』である。ロバート・ブリッチャーというエンジニアの著作で、まとまりには欠けるが情熱の込められた本である。ブリッチャーは大規模ソフトウェアの失敗を内部で経験した。(中略)AASは、航空交通管制システムを近代化する計画だった。1981年に始まり、数十億ドルを費やしたあげくにほとんど何の成果をあげることなもなく1994年に「打ち切られた」。

(中略)

AAS計画は、ピーク時には1日100万ドルの政府の資金を使い、IBMの従業員2000人をプロジェクトに投入し、プログラムのコード1行につき100ページのドキュメンテーションを作成した。しかし、ブリッチャーによれば、結局「ソフトウェアを書くことはできなかった。」(中略)ブリッチャーが記録に残したプログラミングの戦いの中で、オーバーワークというより、むしろ挫折による重圧を受けていた参加者たちは、自動車事故を起こし、精神に異常をきたし、自殺に追い込まれる。プロジェクトマネジャーは紙を食べることをやめられなくなり、遅れが拡大するにしたがい、会議中に口に詰め込む紙切れがどんどん大きくなっていった。もちろん著者も含め、傷を負わずにすんだ者はいなかった。

IBMのような企業が、もちろん鬼より賢い人々の企業で、そこから2000人のプロパー(やはりスマートな人たちだろう)と、航空関係の官僚たち(もちろんさらにスマートな人たちに違いない)、潤沢な資金、そういうのが死屍累々というのは、これまでさんざん語られてきた。ということは、何かが間違っているのだから、方法を考え直すのが当たり前の方法だ。

生産性が頭打ちになりキャパシティが不足すると何が起きるか? 上部構造が反乱にあう、というのと同じではないか(追記:ここは混乱している記述だ。逆だとう思う)。

それを読んだ後に、Diary?(ここに書かれていることは主観的な事柄なので内容そのものについては何も判断はできないが、少なくとも、Antがどうしたというようなことは元請けが主導することはできるはずだし、それをするのが元請けのミッションではないのだろうか)を読み、本当に人間の進歩への歩みの遅さあるいは愚かさの繰り返しにうんざりする。間違った方法を繰り返しても正しい結果は得られない。何が本当に正しいのかは(まだ確実性をもっては)わかってはいないが、しかし、だめな方法はわかっているのではないか?

プログラマーのジレンマ 夢と現実の狭間(スコット・ローゼンバーグ/伊豆原 弓)

さて、ということから、これも読みたいものだが。

The Limits of Software: People, Projects, and Perspectives(Robert N. Britcher/Robert L. Glass)


労働集約産業では、いくつもの歴史的な実験とその結果がある。NEPは成功し、コルホーズは失敗した。人民公社は収益を内部で留保できるようにしたときに最も効率的だった。私有が認められると生産性が上がり万元戸が生まれた。

大規模開発というのは、SIの事業で、それは労働集約的に行われる。そこでの農民はNEPや万元戸時代のように自発的な能力を発揮することでより高い収益を上げられる存在ではなく、コルホーズの赤い農奴のように扱われているのではないか。中央の管理により一滴の水の用途はもちろん天候を無視した時間決めの生産活動(農業活動ではなく生産活動と、意味もなく抽象化され標準化されている点に注意したい)、植物の成長ではなく、あらかじめ決定されたスケジュールにのみ依存する収穫作業、こういった方法論がまかり通っているように思う。

もちろん、コルホーズや人民公社には、ぐうたらで、無能で、自分の脳みその使い方を知らない、奴隷根性の連中がうじゃうじゃいるかも知れない。おそらくいるだろう。しかし、彼らは、いずれにしても、生産に寄与はできない。20:80法則は常に正しいと仮定してみよう。80の奴隷は、何をやっても80の奴隷だ。着目すべきは20に最大のパフォーマンスを発揮させることだ。NEPが成功したといっても、100人の農民のすべてが成功したわけではない。するわけもない。しかし、コルホーズに100人の農奴を押し込めたときよりも、高い生産性を上げていたというのが、歴史というものだ。


2009-05-30

_ gihyo.jpへ進出

DRYにExcelを活用するためのVBAの基礎知識

WEB+DB vol.49に寄稿したExcelの記事の補完記事が公開されました(突然終了感というか龍頭ダケなのは、そのためというか)。

WEB+DB PRESS Vol.49(WEB+DB PRESS編集部)

ここ半年ほどやたらとExcelに向かうことが多いけど、つくづくプログラマブルというのは重要だなぁ(少なくとも、おれにとっては)と思う。

_ アシュトンは変なやつだ

と書いて気付いたが、リンゼイ・ケンプも変なやつだ。

どうも、英国の振付師は変なやつしか知らない。しかも、その二人しか知らないし。

ピーターラビットと仲間たち【ユニバーサル・セレクション1500円キャンペーン/2009年第4弾:初回生産限定】 [DVD]

ティギーおばさんのダックウォークがアシュトンその人だということからして既におかしいが。

とにかくえらく笑わせてもらった。

ブタがうじゃうじゃ出てくるだけでもおかしいが、ティギーおばさんが歩いていると茂みの向こうに赤っぽい△が2つ見えて、キツネの紳士がDuckのセイジとオニオン詰めの記事を新聞で読んでいるとか。

少しも効果的だとは思えない実写のポッターさんの日常描写が最初のうちは入って少しうるさい感じだが、あとは着ぐるみの饗宴で、マンクスの音楽とかいろいろ寄せ集めにのってピグリン・ピグゥイッグやネズミ夫婦とかが大暴れ、ジェレミーフィッシャーどんはぴょんぴょん飛びまくる。

買って良かった、実に楽しい。

ピーターはずっと茂みの陰からネズミのパーティをのぞいているとか(どういう意図の演出なんだろう)、フクロウの神様がウィンクするとか(観ていて思ったが、ナトキンのエピソードは空に上がって、上から落ちてくるというのが、ドンキホーテの演出みたいであり、サスケの忍術のようでもあり)、熊川版では気付かなかった演出がいろいろ。

ただし、豚かあさんのかぶり物は、熊川哲也のところのやつのほうがでっかくて、より滑稽だった。

しかし、仮にロイヤルバレエ団が、今これをかけるとして、コボーとかコジョカルがビグリンやビグウィッグのかぶり物をしたりするんだろうか? なんかやらなそうだな。熊川哲也がフィッシャーどんをやらないようなものか。

本日のツッコミ(全3件) [ツッコミを入れる]

_ ムムリク [先に gihyo.jp の記事を読んでしまったです。副作用ってなんだろうと思っていたわたしです。<sub]

_ arton [たとえばフォームを表示するとか、セルの内容を置き換えるとか、関数内で実行した処理によってプログラムの状態が変更される..]

_ ムムリク [なるほど。ありがとうございます。]


2009-05-31

_ iTunesに70枚追加

なんとなくやる気がむんむんしてきたので、思い切って、オリジナルジャケットコレクションをiTunesに全部入れた。5時間以上かかって、昨日途中で落ちてしまって、朝続きからやって、10時くらいに終わった。MacBook Proは速くて良かった。

Glenn Gould - The Complete Original Jacket Collection(Glenn Gould)

(なんか、こんなに高価じゃなくて、むしろばかばかしくお得価格だったのに変だなと思ったら、マーケットプレイスなのか。)

やる気になった理由として、120G iPod classic買ったってのは大きい。

で、iPod classicはカバーフローが付いているので、usやらukやらのアマゾンを総動員してジャケット写真も設定しまくった。意外なほど、usアマゾンでは日本版を輸入して売っているんだな。やはりクラシックなら日本に聴けというでまかせだが格言通りの状況のようだ。というよりも、日本人はグールドのことをカナダ人と同じくらい愛しているからしょうがない。

それにしても、70枚あると、まったく聴きもしないのが山ほどあるわけで、ブラームスとかモーツァルトは最初からあるのを知っていて、かつ聴かないから良いのだが、ハイドンのソナタやヘンデルのハープシコード曲、バッハでもトッカータ集(それも2枚も)なんていう珍妙な録音まであって、レパートリーのむちゃくちゃさに驚く。

まるでイェニチェリのお鍋を見つけたときのアンデルセン(だと思ったけどわからない)のセリフ、あんなものまで食ってたのか、みたいな気持だ。

ヒンデミットが山ほど出てくるわ、いけどもいけどもシェーンベルクが出てくるし(独奏曲を入れているのは知っていて、かつ、最初から持っているわけだが、歌曲集の伴奏とかしたものまで収録されているし)、カナダの作曲家集のようなものまで出てくる。

でも、アイヴスはないのな。

で、いろいろあるが、ゴルトベルクは別とすると、やっぱりこの2つが好きだ。

バード&ギボンズ作品集(紙ジャケット仕様)(グールド(グレン)/バード/ギボンズ)

イギリスのクラシックっていうと、パーセル、ヘンデル、ヴォーン・ウィリアムス、ブリテンと相場が決まっていて(ホルストやエルガーを忘れてはならないかも)、でも、おれが好きなのは、バードやギボンズのささやかな音楽たちだ。

そして、後期のベートーヴェン。

ベートーヴェン:ピアノ・ソナタ集 Vol.7(第30~32番)(紙ジャケット仕様)(グールド(グレン)/ベートーヴェン)

ポリーニのすばらしい名演があるが(ヴェルデニコフも忘れてはだめかも、というか聴き直していたりする)、グールドがくそまじめに、融通無碍の境地で何か別のソナタを作り始めたベートーヴェンを気持ちよくフォローしていて、楽しい。特に30。聴き直したら、前よりよっぽど好きになっていたりして。

#グールドの響きの特徴というのは、打鍵してから指を離すまでの時間の取り方ではないか、そこに特徴をつける奏法だとコンサートホールではうまく音を聴きわけてもらえないのではないか、というような見解を礼文先生に教わったのを思い出して、一種の歯切れ良さにそういう技術要素があるのかなと考えてみたり。

シザーハンズ (特別編) [DVD]


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|

ジェズイットを見習え