トップ 最新 追記

日々の破片

著作一覧

2015-09-01

_ 今度は惑星のさみだれを読む

スピリットサークルを読んでやたらと気に入っていたらusaさんが、お前は水上悟志を知らんのかと言ってきた。

で、勧められるままに惑星のさみだれをまとめ買いして読みはじめたがこんなものを平日の夜寝る前に読もうとするのはあまり賢いことではない。気付いたら空が白み始めていた(でも天気が悪いから気付かなかった)。

スピリットサークルが14歳の少年を主人公にした少年マンガなら、惑星のさみだれは18歳の青年を主人公にした青年マンガ(ただしパンチラとドッキリイベントまでと抑制されているけどな)で、作家の構想力や表現力にますます感心しまくる。

というか、純粋にむちゃくちゃおもしろい。

メガネの暗い顔した(性格も)ひょうろくだまの青年と回りを囲む妙に和語な名前な人たち(さみだれだのしののめだの)が、なんとなくCLAMPの作品(良く覚えていないがツバサとか)を思わせなくもないが、ゆるくて気持ちが良いギャグと、仲間に囲まれているのは心地良いという気分と、生き物は死ぬという摂理と、すっきりとした明るい絵柄(ここがCLAMPとの一番の違いで地球を破壊する最終兵器がでっかなトンカチという点からして何かおかしい)と、設定のデタラメさと(が、思いつきにしては伏線をきっちりと回収していくから本当にデタラメというわけではない)が相まって、実に独特だ(世間に対する違和感と折り合いを付けるという成長がテーマだと言ってしまえば同じタイプではあるけど)。

で、12人の選ばれた騎士がお姫様を守って地球を悪の魔術師から守るというやたらとファンタジックで、そう書いてしまうとノスタルジックな設定を、きれいに外しまくることで違和感なく(いや嘘だな、とんでもない違和感をギャグにしてしまうことで)現代の物語にしているうまさにしびれまくる。

堪能した。

[まとめ買い] 惑星のさみだれ(ヤングキングコミックス)(水上悟志)

特筆すべきは12人も騎士がいて、しかもお姫様がほとんどチートで、主人公がえらく精神的にも戦力的にも成長してしまうのに、戦闘のルールや騎士の世代や能力をうまく利用して、繰り返しになったりだれたりしないように、実にうまく作ってあることだ。12人も居て作劇上はぶられる登場人物がいないんだよな。すごい作家がいるものだなぁ。


2015-09-04

_ Javaにおけるインターフェイスの爆発

仕事環境でJDK1.8を解禁させたので、いろいろ試しているうちにとんでもないことに気付いた。簡単にインターフェイスが爆発してしまうのだ(あまりうまい表現ではないなぁ。ビッグバンが起きるという雰囲気を出したいのだが)。

ようするに、これまで糞面倒だったコールバックが異様に簡単に書けるようになったので、呼び出し側が簡単に利用できる以上は呼ばれる側も情け容赦なくコールバック関数を取るAPIを作るわけだが、異様に簡単なのはラムダ式を記述できるからだ。ということは、関数型インターフェイスをばかすか定義することになる。

そんなものは1メソッドあたりで定義すれば良いし、呼び出し側はどうせ型宣言とかしないのだから、内部インターフェイスで良いだろうと考える。すると1メソッド平均1.5インターフェイス、1クラスあたり5publicメソッドとすると、1クラスあたり8インターフェイスくらいが定義されてしまう。それが累積するのですごいことになる(クラスファイルは)。

たとえばHttpUrlConnectionをラップした便利クラスを作るとする。ここでの便利というのはドメイン特化と言う意味だ(でも下のサンプルは汎用だけど)。

public class EasyHttp implements Closeable {
    HttpURLConnection connection;
    public EasyHttp(String uri) throws Exception {
        this(uri, null, null);
    }
    public EasyHttp(String uri, String user, String pwd) throws Exception {
        URL url = new URL(uri);
        connection = (HttpURLConnection)url.openConnection();
        if (user != null) {
            connection.setRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString((user.trim() + ":" + pwd.trim()).getBytes()));
        }
        connection.setRequestProperty("Accept-Encoding", "gzip");
    }
    public interface SetupCallback {
        void setup(HttpURLConnection c) throws Exception;
    }
    public void setup(SetupCallback cb) throws Exception {
        cb.setup(connection);
    }
    public interface WriteOperation {
        void write(OutputStream os) throws IOException;
    }
    public interface ReadOperation {
        void read(InputStream is) throws IOException;
    }
    public interface ReadStringOperation {
        void read(String response) throws Exception;
    }
    public interface ErrorOperation {
        void error(int code, InputStream is) throws Exception;
    }
    public int get(ReadOperation ro, ErrorOperation eo) throws Exception {
        return start(null, ro, null, eo);
    }
    public int getString(ReadStringOperation ro, ErrorOperation eo) throws Exception {
        return start(null, null, ro, eo);
    }
    public int post(WriteOperation wo, ReadOperation ro, ErrorOperation eo) throws Exception {
        connection.setDoOutput(true);
        return start(wo, ro, null, eo);
    }
    // この名前は悪い。StringをPOSTするみたいだ。getStringに合わせてレスポンスをStringで取るという意味だがそうは読めない
    public int postString(WriteOperation wo, ReadStringOperation ro, ErrorOperation eo) throws Exception {
        connection.setDoOutput(true);
        return start(wo, null, ro, eo);
    }
    int start(WriteOperation wo, ReadOperation ro, ReadStringOperation rso, ErrorOperation eo) throws Exception {
        connection.connect();
        if (wo != null && connection.getDoOutput()) {
            try (OutputStream os = connection.getOutputStream()) {
                    wo.write(os);
                    os.flush();
                }
        }
        String encoding = connection.getHeaderField("Content-Encoding");
        boolean gzipped = encoding != null && encoding.toUpperCase().equals("GZIP");
        int status = connection.getResponseCode();
        if (status == HttpURLConnection.HTTP_OK) {
            try (InputStream is = (gzipped)
                 ? new GZIPInputStream(connection.getInputStream())
                 : connection.getInputStream()) {
                    if (ro != null) {
                        ro.read(is);
                    } else {
                        ByteArrayOutputStream bao = new ByteArrayOutputStream();
                        byte[] buff = new byte[8000];
                        for (;;) {
                            int len = is.read(buff);
                            if (len < 0) {
                                break;
                            } else if (len == 0) {
                                continue;
                            }
                            bao.write(buff, 0, len);
                        }
                        if (rso != null) {
                            rso.read(bao.toString("UTF-8"));
                        }
                        bao.close();
                    }
                }
        } else if (eo != null) {
            try (InputStream is = (gzipped)
                 ? new GZIPInputStream(connection.getErrorStream())
                 : connection.getErrorStream()) {
                    eo.error(status, is);
                }
        }
        return status;
    }
    @Override
    public void close() throws IOException {
        if (connection != null) {
            connection.disconnect();
        }
    }
}

JDK1.8の型推論がいまいちなのは、上の例だとget, getStringなどとユーザーAPIのメソッド名をオーバーロードではなく別物にせざるを得ない点だ。つまりもし同じ名前にすると、仮にラムダ式の内側で型が明らかに異なっても「参照はあいまいです」というエラーになる点だ。で、しょうがないのでメソッドはオーバーロードせずに名前を変えざるを得ない。

で、とにかくまともになったのは、上の細かなインターフェイス名などをいちいち呼び出し側は書く必要が無い点だ。

// なんとあの見苦しいimport java.io.*をほとんど書く必要がない。
try (EasyHttp eh = new EasyHttp("http://www.yahoo.co.jp")) {
    eh.getString(s -> System.out.println(s), (code, es) ->  System.out.println("error:" + code)); 
} catch (Exception e) {
    e.printStackTrace();
}

あるいは

try (EasyHttp eh = new EasyHttp("http://example.com/postdata.aspx")) {
    eh.setup(c -> c.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"));
    eh.postString(os -> os.write("a=b&c=d".getBytes()), s -> System.out.println(s), 
        (code, e) -> System.out.println("error:" + code));
} catch (Exception e) {
    e.printStackTrace();
}

呼び出し側は、これがJavaかと驚くほどシンプルに書けるようになって、実に良い。しかしclassesディレクトリを見るとぞっとするほどclassファイルができている。

でちょっと思ったのは、少なくとも楽に関数を引数にできると、テンプレートメソッドパターンはほとんど必要なくなるので(インスタンス変数を持つ側の問題があるからすべてではない)、それほど継承(一番のモチベーションはテンプレートメソッドパターンの適用なので)を使う必要がなくなる。それでJavaScriptはクラスベースではないのに、元々のJavaよりも使いやすいのかな? ということだったりする(今となってはJavaのほうが関数引数は書きやすいわけだが)。

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

Before...

_ arton [同一ソース内の型はJavadocにリンクが入るから簡単に飛べるよ。あとろくにドキュメントされていないことが多かったか..]

_ きしだ [いや、特にその情報が欲しいと思ったことがないのです。引数・戻り値の組と、そのメソッド自体の説明があれば、引数・戻り値..]

_ arton [なるほど。それならいいですね。]


2015-09-05

_ ルヴィエのラヴェル

確か高校生(もしかすると中学生のときかも知れないが、3枚組というボリューム(というか価格)からちょっと考えにくい)の頃、カリオペレーベルが日本ビクターあたりと契約して日本盤(LPだ)が出るようになった。

で、当時のことだからラヴェルといえばボレロくらいしか知らなくて、でも生まれついてのおフランス好きがあるから、カタログにジャックルヴィエという人のラヴェルのピアノ全集があったので購入した。

それが見事に白い箱に入った美しいレコードでなるほどこれはカリオペ(オルフェの母親だ)ですなぁと嬉しかった。

ピアニストは初耳だし、他の演奏はおそらくパヴァーヌくらいしか聴いたことはないから比較はできないのだが、粒が揃った美しい演奏(たとえばソナティーヌの冒頭の部分は大好きなのだが、タララランと入る装飾が実に美しい)と、真っ白なジャケットのイメージの相乗効果で、硬質な美しいラヴェル演奏という自分の中の音のイメージの基準となった。

特に気に入ったのはアラマニエールの2作品(特にシャブリエ)で余りに気に入ったものでシャブリエ本人の作品を聴いたらがっかりしたのを覚えているがどんな曲かは全く覚えていない(それから随分してから、フォーレが書いたバイロイト流儀のピアノ曲を聴いて、もしかして、バッハのイタリア協奏曲のように勉強させてもらいましたという作品ではなく、こいつはばかですなぁ作品なのかな? )。それからなんと言ってもソナティーヌであまりに気に入ったのでレコード盤が擦り減らないようにほとんど聴かなかった。ばかだなぁ。そういえばクープランに捧げる4曲目も好きだった。高貴で感傷的なヴァルスも好きだな。

で、どえらく時がたって、いろいろラヴェルを聴く機会があるのだが、ルヴィエという名前を忘れてしまって、唯一覚えているのは真っ白なレコードの箱だけとなったが、あの頃聴いたシャブリエ流儀やソナティーヌを死ぬ前にもう一度聴きたいという思いは年々強くなるばかりだ。いよいよ老境に差し掛かったということだな。

で、同じ頃のピアニズムのハースの全集とか聞いて我慢していたわけだが(フィリップスの録音とカリオペの録音はなにか近いものがあるように感じる)、先日、ついに見つけ出した。

しかもMP3で1800円だ。

Ravel: L'œuvre pour piano(Théodore Paraskivesco, Jacques Rouvier)

というわけでほとんど最近はラヴェルを聴いているのだが、何億回聴いても擦り減らないというのはすばらしい。


2015-09-08

_ 1917年を舞台にした小説の中の言葉

突然、次の言葉に衝撃を受ける。

「まあ聞けよ。人生は劇場だ。それはだれでも知っている。(たくさんの省略)

「芝居の中身なんて問題じゃない。同じ比喩で言うなら、前はだれでも客席から腐った卵を舞台に投げつけることができたが、いまはしじゅう舞台から機関銃がぶっぱなされてる。爆弾だって飛んでくる。どうだ、いまなるべきはどっちだと思う? 役者か、客か」

これは真摯な問いだった。

(そして多少の省略)

これからは……」僕は指をつきあげた。「映画の時代だよ」

映画の時代はどうでも良いが、今、おれがいるのは客席か舞台かどちらだろう? 客席のつもりだったが、実はそうではなかったりして。

チャパーエフと空虚(ヴィクトル ペレーヴィン)

で、読み進めていたら、どうもターミネーターの頃のシュワルツェネッガーが出てきて、ただのマリアと、ヌスラト・ファテ・アリ・ハーンとロバート・フリップが組んだジハード・クリムゾン(赤い聖戦だな)というバンドの音楽をヘッドフォーンで聴くシーンが出てきて、そんなすげぇバンドがあるのかとついアマゾンを調べてがっかりしたり。

Swan Song(Khan, Nusrat Fateh Ali)

(これは聴く頻度が極めて高い名盤。パキスタンの民族音楽(宗教音楽系)のカッワーリをベースにロックバンドを合わせていてコードが否応なく西洋音楽に寄るのだが旋法はカッワーリのままなので実に気持ちが良いうねりがでてすばらしい。何よりもハーンの歌唱がすばらしい)


2015-09-09

_ ハムスンのヴィクトリアを読んだ

西荻窪に行く用があって、線路下の商店街をふらふらしていたら本屋があって中に入ったら、文庫コーナーに平積みになっている。が、まったく知らない。ノルウェーの巨匠と帯にあるし、カバー見返しにはモダニズム文学の先駆者とまで書いてある。さすがにそこまで書いてある人なら知らないはずはないと思うのだが、知らないものは知らないので興味を惹かれてつい買って読んだ。

おそるべきメロドラマなのだが、何かがおかしい。

舞台は田舎だ。

領主には美しい娘ヴィクトリアがいる。主人公ヨハンネスはその領地に住む粉ひきの息子だ。幼馴染の二人は互いに意識しあい始めるのだが、主人公は孤高の人だ。相手が自分のことを愛していると表現しなければ自分からする気にはならない。一方の娘も同じような性格だ。自然は美しく、冒険のための場所はたくさんあり、夢想によって別の人生を生きる。

このあたりまで読んでいて、どうもジブリの映画になりそうだなぁとか考えながら読み進める。

主人公は長じるに街の大学へ通い始める。休みに田舎へ帰ると娘はますます美しい。

娘が街の知人の家に来たとき、ついに娘から告白させることに成功する。が、次の瞬間から娘はそれがなかったことのように振る舞う。主人公は混乱し、詩が生まれる。詩によって世に出る。

領地へ戻り、主人公はついに娘を問い詰める。娘はついに父親が認めると考えているとしたらどうかしていると告げる。

しかし主人公にはなんの意味も持たない。ますます創作は活発になり、それなりに名を成すにいたる。

一方娘は領主の知人の息子、今では立派な中尉となったオットー(子供の頃は傍若無人に主人公の両親の悲嘆を無視して水車を破壊しようとしたりする愚物)と結婚することになる。

田舎へ戻ると美しかった自然が消失しかかっている。

主人公は式へ呼ばれそうになったり呼ばれなかったりやっぱり呼ばれたり、娘に翻弄されまくる。

さらには席を一等地から四等地へ移動させられたり屈辱を受けまくる。

横にいる禿げた家庭教師から嫌味な質問やら説教やらを聞かされる。

領主の財産は恐ろしい勢いで目減りしているのだと話合っている人たちがいる。

猟場でオットーは顔を粉砕されて死ぬ。

娘は解放され、大喜びで、しかし喜びを隠して主人公のもとへ行き、曖昧な言い方(得意技)を始める。しかし一歩遅く主人公は愛はないが、心へ喜びを与えることはできる別の娘と婚約してしまっていた。

「あなたがそれを望むだろうとは期待していなかった。これまでにずいぶんひどいことをしたもの。時間がたてば、いつかは赦してくださる?」

「ええ、もちろん、すべてを。問題はそれではないのです」

「なにが問題ですの?」

沈黙。

「ぼくは婚約したのです」と彼は答えた。

(この書き方は作者の特徴で、映画であれば音楽が高揚し泣いたり叫んだり大仰な身振りが入るようなシーンの直前でばっさりと章を打ち切る)

領主はすべての選択を誤ったことを知り自ら死を選ぶ。娘が本当に愛している相手を拒否し、金目当てで選んだ男は死んだ。いずれにしても破産だ。

街へ帰った主人公はますます創作に励む。

婚約者は別のもっと気持ちの良い青年を愛するようになる。確かに、登場すればするほど、気持ちの良い青年で、読者だけではなく主人公もこんなうっとおしい野郎より遥かにこの娘にはふさわしいと心から祝福を送ることになる。

そこへ家庭教師が登場。寡婦と結婚しておそろしく幸福であることを態度と言葉で告げる。そしてヴィクトリアが病気だと教える。

主人公は、それとは書かれていないが、元の婚約者は別の男へ向かったしとか何か考えていたのかも知れないが少し動揺する。

家庭教師はその動揺を引っ張りに引っ張ったあげく、ヴィクトリアからの手紙を渡し、そして教える。昨晩死んだ。

ヨハンネスは手紙を読む。

おしまい。

もし、雑誌新青年の論客であれば、2つの殺人事件の真犯人探しをするだろうというのがまず思い浮かんだ。

オットー殺しと領主殺しだ。オットーを殺せる人間は多い。主人公ですらチャンスはある。また領主の領地を二束三文で買いたたくつもりの地主であればオットーを殺す明白な動機もある。ヴィクトリアも怪しい。そもそも顔が吹き飛んでいるということは、オットーは生きている可能性すらある。

一方の領主は狂言自殺が本当の自殺となった可能性がある。そういう書き方だ。保険に入っているのかも知れない(保険の話は別の箇所で出てくる)。

謎だ。

一方、これは不愉快なメロドラマでもある。不愉快なのは、主人公二人が共に見事なまでに恋愛向きではない性格の持ち主として描かれているからだ。すべての言葉にもったいがつく。もったいがつくので、相手は常に真意を取り損なう。そして常に悪い方向へ話を進めてしまう。

また、ここぞというところで出てきてヨハンネスにショックを与える家庭教師があまりに異様だ。最初の登場シーンの冴えない男っぷりと、最後の登場シーンの堂々たる男っぷりの描写の差は一体何なのだろう。悪魔だ。

なるほど、これはモダニズムの先駆と呼ばれるのももっともなことだ、と思いながら、巻末の結構な分量がある解説を読む。

ハムスンは貧乏な農家のたくさんいる兄弟の真ん中あたりで利発なことに目をつけた伯父に引き取られる。で学問でもするのかと思うと大違い、秒単位で管理されて仕事をさせられて殴る蹴るの暴行を受けながら生きることになる。後年、自分の作品に登場する中老年の男性に悪意を持っているのはこの時の経験のせいだと語ったらしい。なんということだ。

でもまあ、うまいこと抜け出していつの間にか出版社を丸め込んで作品を出したり(売れなかった)、パトロンを見つけて莫大な資金援助を受けて博打で使い果たしたり、アメリカへ行ってすべてを失って戻ってきたりして、やけくそのように書いた作品で時代の寵児となる(無目的な人が無自覚な悪意をもって世の中をふらふらする人物が存在しない作品というような紹介のされ方をしているから、おそらく地下生活者の手記をモダンにしたような感じなのではなかろうか)。その無目的、悪意、非物語性は全ヨーロッパの文壇に強い影響を与えて、1920年にはノーベル文学賞を受賞。

(もっともヴィクトリアは作品中もっとも美しくロマンティックで愛された作品だということになっているが、やはり何かがおかしい。ヨーロッパが一回死んだ時代ならではのことなのだろう)

が、晩年になってやってしまった。

ナチスを賛美し、ナチスと共に歩み、ナチスと共に弾劾を受けた。そしてナチスと共に語られることがない人間になってしまった。

なるほど、そういうことだったのか。

ノルウェーにハムスンがいるということは、フランスにセリーヌがいるようなものなのだな。

ヴィクトリア (岩波文庫)(クヌート・ハムスン)

巻末の解説含めてなかなかおもしろい読書体験であった。


翻訳は素晴らしい。翻訳家の掌の上で読書体験させられる。見事な意思の力がある。

特に家庭教師の言葉が鋭い。

彼女もまた、本来の相手とは結ばれなかった。子供時代からの恋人、颯爽たる若き中尉殿とはね。(略)そうそう、ヴィクトリアの話では、あんたも姿を現わすはずだったのに、来なかったそうだな。これは余計な話か。ともあれヴィクトリアは疲れはてたのだ。尋常じゃなくね。愛する男の思い出が彼女を揺さぶり、心とは裏腹に陽気に振る舞った。踊って、踊って、一晩じゅう踊った。正気の沙汰ではないな。やがて彼女は崩れふし、床は血に染まった。

子供時代からの恋人――若き中尉殿――あんたも姿を現わすはず――愛する男の思い出という流れから、家庭教師の悪意が見えるのだが、解説を読んだら、まさにそうであるべくしてそのように翻訳したということが書いてあった。うまいものだ。


2015-09-10

_ ロシア人による日本の考察がおもしろかった

ペレーヴィンのチャパーエフと空虚を読んでいたら、日本について書いてある断章がいろいろおもしろかった。

この作品では、1910年代の人生を生きるソ連崩壊後(1990年代あたりかな)の青年(要するに頭がおかしい)が収容されている精神病院の病人仲間3人と本人の妄想が行ったり来たりするのだが、そのうち病人仲間の一人の日本企業への就職のエピソードがロシア人の文学的に誇張された日本論になっている。

出てくる日本人がオダノブナガとかアケチミツヒデなのにはまず呆れたが、ふと気づいた。

ロシア人の名前としておれはピョートルだのイワンだのアレクセイだのをぱっと出せるが、この名前はイワン雷帝の時代から通用しているものだ。それってヨーロッパでもわりと普通じゃないか。エドワードやリチャードはばら戦争の時代からエドワードやリチャードだし(英語)、シャルルマーニュの時代からシャルルはシャルルでドゴールもシャルルだし(フランス)、おそらくフェリペやロドリーゴは今でもフェリペやロドリーゴ(スペイン)だろうし、ミケランジェロやレオナルドは今でもレオナルドやミケランジェロ(イタリア)だ。

ところが、ノブナガやミツヒデは現在の日本にはおそらく存在しない。いても珍獣さん珍名さんの類だろう。

日本っておもしろいな。というわけで、日本の有名人の名前を現代の日本人の名前に持ってくることにヨーロッパやロシア人にためらいがなくても、自分たちの文化と同じように考えてしまえば、それはしょうがないことなのだろう。

(牧逸馬のパリを舞台にした作品にアポリネール(そもそもポーランド人の偽フランス語名だ)警部が出てくるよりは気持ちの上でははるかに自然に違いない)

という名前の文化もそうだが、その中に出てくる偽論考に、日本人の義務感について書いたものがあって、それが妙におもしろい。

日本人の義務感とは、恩と義理から構成されている、というものだ。

恩とは、親に対して子、主君に対して臣、兄に対して弟、師に対して弟子が持つ縦の義務感である(それぞれは孝とか忠とか悌とか信とかだが、総称して恩というのは違和感がない)。

義理とは、村に対して村人、会社に対して社員、隣人達に対して住民が持つ横の義務感である。

この2つで論理的に構成された義務感により、日本人は強い倫理性を発揮する。酔っ払いのロシア人とは偉い違いだ。尊敬に値する隣人をもっと大切にしよう。

というのが骨子だ。

どこから引っ張って来たのかは知らんが、なるほどおもしろい見方だが、あながち外人の深読みということもなさそうに見える。

それにしても、義務の縦糸と横糸でがんじがらめにされている日本人というのは、傍から見ると高潔で倫理的な存在かも知れないが、本人にとっては死ぬまで死ぬほど窮屈そうだ。いやなこったな。

で、彼は日本企業に就職することにして、面接を受けに行く。

そこで次々とカワバタが繰り出す奇妙な儀式につき合わされた挙句、最後はタイラの一族に組み込まれて、ミナモトの敵対的買収に合って腹を切ることになるのだが(他のエピソードから考えるに作者は笑い転げながらでたらめを書いているように読めるのだがそこはかとない真実味も感じないではない)実に奇妙な感覚だった。少なくとも伊勢物語は読んだか、少なくとも内容は知っているほどには日本について知っているのは間違いなさそうだ(と、アリワラノナリヒラを真似て馬を木に繋ぐところを読んで思ったが、そもそも伊勢物語にはそんなエピソードはなく、すべてがでまかせの可能性もある)。

チャパーエフと空虚(ヴィクトル ペレーヴィン)

あと、全体を読んでいて、なるほどゲルマンを産んだ文学的土壌(ゲルマンは映画作家だが)を持つ国の作家だなと映像が目に浮かぶのもおもしろい。


2015-09-14

_ 王様と私

子供が借りてきて一緒に見ようというので見た。

50年代のミュージカルといえばMGMは見まくっている(ザッツエンターテインメントの影響が大きい)が20世紀フォックスは見たことないなぁというわけで初見。

すごくおもしろくて、適当に流し見するつもりが完全に見てしまった(でも間奏曲――おもしろい映画の作りで、序曲、間奏曲、後奏曲が流れる。フォックスのタイトルロゴすら序曲の後に流れる仕組みだ。後奏曲は今なら延々とスタッフクレジットが流れるはずが、昔の映画だからMusic To Exitの文字がただ映っているだけ――はちょっと退屈でまじめに観なかった)。

なるほどユルブリナーはすばらしい。目をギョロギョロさせたり口元に笑みを作ったりするだけで立派な映画になる。優れた映画役者の一番の武器ははにかみだと思うのだが(例:勝新太郎、田宮二郎、石原裕次郎、ウィリアムホールデン、クリントイーストウッド)、この人も素晴らしい。特に最初に子供を次々と紹介するシーンで、ここがあまりに素晴らしいので真剣に観るモードになったのだった。

雇われ外国人教師役のデボラカーも良い。

時代は南北戦争期(1861~1865と今あらためて確認すると、ペリルが開国させたのにその後日本にアメリカがほとんど介入しなかったのは、しなかったのではなく、国内政治が忙しすぎて日本に手が回らなかっただけなのかな? と思った)なのだが(王様がリンカーンに手紙を書くシーンがある)、デボラカーが持ち出した地図がむちゃくちゃだ。

最初、シャムを中心にやたらとどでかく書いた世界地図を見て王妃たちがシャムがどれだけ強国かビルマ(当時だから良いだろう)と比較して大騒ぎするので、デボラカーがまともな縮尺の世界地図に変えるのだが、この地図が微妙で目をひいた。

当然のように、日本に眼がいくのだが、満州が領土になっているし、中国が満州を含めて4分割(色としては3)されている。はて、これは1930~1940年代の地図ではなかろうか? 時代考証がいい加減で頭がちょっとくらついた。

満州以外の水平3分割は、真ん中の南京政府(日本の傀儡で、フランスのヴィシー政権みたいなものだ)、南の重慶政府(国民党政府)はわかるとして、満州と南京の間はなんだろう? 延安政府の支配地域にしてはでか過ぎる気がするのだが。

と子供と話していると、子供はヨーロッパがおかしいと言い出す。いや、満州があるということは、ドイツ第三帝国が薄い緑だとしたら何もおかしかないぞと教える。まずポーランドという国は存在しない。それにしてもノルウェーがでか過ぎる気がしたがそれはメルカトル図法だからだなと今気づいた。

王様と私<特別編> [DVD](デボラ・カー)

イギリス人に野蛮人ではないことを証明しようと、夫人たちに西洋風のドレスを着せて、ナイフとフォークを用意して……とやっているところを見て、鹿鳴館外交みたいだなぁと思ったりしながら、いろいろ楽しめた。

でもそういう枝葉もおもしろいが、なんといっても映画としておもしろかった。


2015-09-15

_ 英国ロイヤルのドンジョヴァンニ

日曜はNHKホールで英国ロイヤル歌劇場のドンジョヴァンニ。

生ジョイスディドナートを観て聴くのを楽しみに行ったわけだが、NHKホールの3階の奥では歌手そのものをちゃんと見られるわけがない(舞台は良く見えるが)。

演出は回転する館(だったり森だったりいろいろする建物)にプロジェクションマッピングを使ったもので、子供が買ってきたDVDで観たことがあった。ごてごてし過ぎず、好きな演出だ。農民武装集団が洗練されているのがおもしろい(が、マゼットが田舎やくざみたいな風体なので違和感はない)。

最後は、アニマルハウスみたいな各位のその後を述べる部分をばっさり切ってドンジョヴァンニが苦悶しているところに合唱が入る。

地獄に落ちるのではなく昇天するようにも見える。それはそれで良いことだ。

騎士隊長が登場する前後でレオポッロが壁抜け男のように壁に溶け込むのもおもしろい。

ドンジョヴァンニのダルカンジェロは落ち着いた感じで悪くない。エルヴィーラの侍女を誘惑するところでは英国ロイヤルで良くみかける全裸演出だが、日本なので下半身は影で覆われている(多分肉色レオタードかなにかも着せているのだろうな)。少なくとも歌っているだけで全裸にさせるのだからドンジョヴァンニの魔力はまったく衰えていないという演出(ではなぜツェリーナには効力がないのかそれともあったのかは謎になるが、エルヴィーラの存在が影響しているという見方もできるのかな)。

声だけからは、ツェルリーナ役のユリア・レージネヴァが張りもあれば美しくもある歌で良かったし、ディドナートはもちろん悪くはないが考えてみればエルヴィーラよりもロッシーニの曲芸みたいな歌のほうが聴きたかった。

パッパーノはチェンバロをポロロロンと弾きながら指揮をしていたようだ(見えないが、指揮台にチェンバロが置いてあったから間違いなくそうだろう)。

序曲のテンポと後半の高いところで弦が鳴るところが美しくて、そのまま持続した。ところどころテンポが遅いかな(歌と合わないところがあった)と思わないでもないがうまいものはうまい。ドンナ・アンナの人は(そもそも曲が大して好きではないこともあるが)あまり印象に残っていない。ドンオクタヴィオがビリャゾンで声は良く通るがどうも地味だった(が、最初から退屈極まりなく、全員途中で退場してしまう2幕のやたらと長いアリアを、少なくとも最初の部分は興味深く聴けたからやはりうまいのではなかろうか。それにしてもやはり長過ぎるというのはモーツァルトが悪いわけだが)。

楽器編成といい、舞台といい、NHKホールのでっかな箱で観るよりも、もっとこじんまりとしたホールで観たかった。音は2階で聴くようなくぐもり感はないのだがやはり3階の奥は遠過ぎる。まるで音が良いテレビを観ているような感じでどうにも臨場感には欠けるのだ(小編成のオーケストラだということもありそうだ)。

モーツァルト:歌劇《ドン・ジョヴァンニ》 K527[2DVDs](クヴィエチェン)

この演出(舞台装置)だ。レポレッロは同じアレックス・エスポージトという人。安定して楽しい演技の人だ。


2015-09-18

_ ビッグデータコネクトを読んだ

以前買ったままになっていたビッグデータコネクトを読んだ。

最初のうちは、警察が気分悪すぎてなかなか読む気になれなかったが(加齢のせいか、どんどこ非純粋な悪意、つまりは愚鈍ということだが、を持った登場人物が出てくる作品を読むのが辛くなってきた)、1/3くらいから(あまりにたくさんの愚鈍な警官――まるで愚鈍なことが警官の条件のようだ――が次々と出て来たせいで、2番目のやつが回りの愚鈍さに圧倒されて多少はスマートに振る舞えるようになったのが大きい、とまるで作品内の時間軸の動きによる登場人物の心境の変化に連動しているのが我ながらおもしろい)はそれほど気分も悪くならなくて気付いたら読了していた。

ビッグデータ・コネクト (文春文庫)(藤井太洋)

気付いたら読了していたくらいだから、おもしろいはえらくおもしろい。

多少は2010年代の事件とシンクロさせていて、技術者倫理と仕様が機能ではなく情実で決定される大規模開発の困難に、殺人とか情報保護のありようだとかの論点と、監視カメラ(ここだけはIoTかな)と住基ネットと企業横断型会員カードを結合させたデータベースと、監視することが正義という考え方や、女性が自立可能な職業とはとか、戸籍に利用される文字コードであるとか、マスコミの取材の社会的な効用と世論を誰がどう利用するかなどの論点をえいやと混ぜ合わせてかき混ぜて出しましたみたいな内容だから、出てくる愚鈍な人物の気分悪さにさえ我慢すれば、そもそもおもしろい内容だ。

ただ、最後の最後のオチをなぜそう選んだかという不可解さと、その直前のオチの極端なくだらねぇ感は感心できなかった。オチがくだらないから最後の最後のオチに不可解感を入れて帳消しにしたのかな。

つまり、悪徳警官というのは存在しないし(善意なのだ)、悪徳官僚というのは存在しないし(心からの善意なのだ)、悪徳企業というのは存在しないし(彼らは仕事をしているだけなのだ)、と、調整をした結果、愚鈍という罪だけでは出資金の出しようがないので、なんとなく責任をおっ被せても世論的に問題無さそうなところを落としどころにしたみたいな、政治的決着な物語で、ここまで含めたメタ構造なのかなぁと首をひねるのが最後の最後の不可解なオチなのだった。

# わざと事実としての歴史の刻印を入れたのだと思うが、Power shellとか Hadoopとかの固有名詞は本当に古びるのが早い(が、雰囲気語の要素もあるので作品としては問題ないのだろうな)。

# ビッグデータなら分散画像認識で絞りこんでから返すのが筋だろうと思ったが、時期的に地下のサーバにマップしてからリデュースするということなのかなぁとか。

仕様がくそなのは、問い合わせ-全カラム分のデータ-マッチングとなっているところで、そもそも帯域の無駄遣いが半端ではない。しかも全カラム分のデータを取得するところは情報収集のための仕様ではなく単なるバグだから、修正はえらく簡単なはずだ。

サブシステムのデザインとして、問い合わせ-全結果の取得-マッチングとやるにしても(問い合わせ先でマッチングできない前提として)、全結果は不要なわけで、必要なのは*id,kanji_surname,kanji_givennameに書き換えるだけのことだ。で、問い合わせ元もマッチングのためには後ろの2つのカラムしか見ていないはずだからどうということはない。

正しくはワイルドカードではなくJIS可能なコードへ変換したコードを持たせておくことだろう。でもそれはデータとしてあらかじめ用意されていないかも知れない(が、しょせん90万文字を数万にマップした補助的なテーブルを用意すれば済むだろう)。

とか考えながら、どうもぱっとしないなぁと考えながら読んでいたら、第2の矢も用意されていてこちらはなかなかおもしろい。(各国の技術力の差として用意した設定なのだろうか)


2015-09-20

_ thisクッション

久々にC++でCOMのコンポーネントを書いたらわからない現象に出会ってしょうがないので回避したが、原因はなんだろう?

まず、それは2つのATLを利用したクラスのインターフェイスだ(以下うろ覚えで書くので一部ATLの継承リストなどは適当)。

class CComponent : public CCom..., (ATLの長い継承リスト)
{
   ...
}
class CDialog : public CAxDialogImpl
{
}

タイマーを利用してCComponentの関数を呼び出したい。そこでCDialogにポインタと関数を記憶させることにする。

typedef void (CComponent::*callback)(LPVOID);
class CDialog ....
{
public:
    ...
    enum { CALLBACK_EVENT = 101 };
    void RegisterComponent(CComponent* p) { m_component = p; }
    bool RegisterDelayedFunc(CALLBACK_EVENT, UINT msec, callback fnc, LPVOID param)
    {
        if (m_callback) return false; // busy
        m_callback = callback;
        m_param = param;
        SetTimer(msec);
        return true;
    }
    ...
    LRESULT TimerProc(WPARAM timerId, LPARAM lparam, bool& bhandled)
    {
        if (timerId == CALLBACK_EVENT)
        {
            (m_component->*m_callback)(m_param);
            m_callback = NULL;
        }
        bhandled = true;
        return 0;
    }
private:
    callback m_callback;
    LPVOID m_param;
    CComponent* m_component;
};

上の例では面倒だから1関数しか登録できないようにしてみた。

で、CComponent側はこんな風に使おうとした。

    HRESULT FinalConstruct()
    {
        Application->GetDialog()->RegisterComponent(this);
        ...
        return S_OK;
    }
    HRESULT STDMETHODCALL AsyncFoo(BSTR instr, LONG* retval)
    {
        if (!retval) return E_POINTER;
        Application->GetDialog()->TimerProc(10, &CComponent::Foo, instr);
        return S_OK;
    }
    void Foo(LPVOID param)
    {
        BSTR b = reinterpret_cast(param);
        ...
        SysFreeString(b);
        FireAsyncResultEvent(resultValue); // using Connection Point
    }
    ...
};

すると壊れる壊れる。CDialogの特定メンバーがつるりとNULLになる。

まず疑うのは、RegisterComponentで与えたthisが、CComponentではなく異なるvtblの可能性だ。が、関数プロトタイプから正しいポインタが与えられることを期待できると思うのだ(と書いて、これが怪しいなぁという気もする。FinalConstructはATLの基底クラスの1つが呼び出すから、そのクラスのvtblになっている可能性がある)。

というか、ブレークポイントを入れれば、正しくFooがコールバックされる。したがってthisが異なるというのはあまり考えられない。(追記:でも仮想関数ではないからブレークポイントが効くのは当然だった。この時インスタンス変数を見ていないために問題に気づいていないだけとか?)

データ破壊に対するブレークポイントを仕掛けても、止まらない(がクリアされているのは事実)。これは困った。が、代わりに全然関係ないCCompoentのSTDMETHODのreturnで、esp破壊を検出する。はて? typedefから言ってもどこにも矛盾は無いはずだが。

データ破壊ブレークポイントが効かないと常に轢き逃げ後の状態でしか捕まえられない。謎過ぎる。

時間切れだ。

というわけで、クッションを置くようにした。するときれいに解決するわけだが、なぜだ? (Win32APIの多くがコールバックをstaticにしているから考え付いた回避方法だが、本当に回避できているのだろうかという疑問も)

typedef void (*callback)(CComponent*, LPVOID);
class CDialog ....
{
public:
    ...
    enum { CALLBACK_EVENT = 101 };
    void RegisterComponent(CComponent* p) { m_component = p; }
    bool RegisterDelayedFunc(CALLBACK_EVENT, UINT msec, callback fnc, LPVOID param)
    {
        if (m_callback) return false; // busy
        m_callback = callback;
        m_param = param;
        SetTimer(msec);
        return true;
    }
    ...
    LRESULT TimerProc(WPARAM timerId, LPARAM lparam, bool& bhandled)
    {
        if (timerId == CALLBACK_EVENT)
        {
            (*m_callback)(m_component, m_param);
            m_callback = NULL;
        }
        bhandled = true;
        return 0;
    }
private:
    callback m_callback;
    LPVOID m_param;
    CComponent* m_component;
};

と変えて呼び出し側も変える。

    HRESULT STDMETHODCALL AsyncFoo(BSTR instr, LONG* retval);
    void Foo(LPVOID param)
    {
        BSTR b = reinterpret_cast(param);
        ...
        SysFreeString(b);
        FireAsyncResultEvent(resultValue); // using Connection Point
    }
    ...
};
...
# cpp file
static AsyncFooCallback(CComponent* p, LPVOID param)
{
    p->Foo(param);
}
HRESULT STDMETHODCALL CComponent::AsyncFoo(BSTR instr, LONG* retval)
{
    if (!retval) return E_POINTER;
    Application->GetDialog()->TimerProc(10, &AsyncFooCallback, instr);
    return S_OK;
}

わからん。

追記:ふと気付いたがスレッドをまたがっている気がしてきた(にしてはHWNDが有効だから(WM_TIMERを取れているから)違うかなというか、COMのマーシャルが必要な話ではないし)。素直にHWNDをNULLにしたSetTimerを直接呼ぶべきだったのではなかろうか(その場合、いやでもインスタンス関数は呼べないから同じような形にせざるを得ないけど)。

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

_ Kunif3 [的外れかもしれませんが、AFX_MANAGE_STATEマクロを試してみると良いかもしれません。 AFX_MANA..]

_ arton [どうもありがとうございます。確認してみます!]


2015-09-22

_ C#で多値を返す

rubyではreturnに複数の値を,で列挙して関数から一度に複数の値を返すことができる。

def mfun(x, y)
  return x + 1, y + 1
end
a, b = mfun(3, 4)
puts "#{a}, #{b}" #=> 4, 5

同じようなことをC#でやる場合には

  1. outまたはref引数へ返す
  2. object配列の要素として返す
  3. 構造体かクラスを返す

のいずれかが必要である(C#4.0未満)。

1は下品だし、2は型が異常だし、3は宣言が面倒だ。

特に1が最悪なのは、返す値(というよりも種類)を増やそうとするとメソッドシグネチャが変更されてしまうことだ。それに比べれば2は柔軟、3は安全なので悪くはない。

ということは、値を返す場合は、戻り値を利用するという原則はやはり原則として正しいということだ。

ただ、2は異常だ(工夫しどころとしてはインデックスをEnum名として名前と値を定義づけるという方法はあるが、そんなことをするのであれば素直に3とすべきだ)。

問題は3は面倒だということで、3の面倒さを解消するのが方法論としては正しい。

というわけで、C#4.0であれば、型としてdynamicを利用できるのでそれを利用する。

class MVal 
{
    static dynamic mfunc(int x, int y)
    {
        return new { X = x + 1, Y = y + 1 };
    }
    static void Main()
    {
        var v = mfunc(3, 4);
        System.Console.WriteLine(v.X + ", " + v.Y); // => 4, 5
    }
}

追記:mayukiさんのご指摘の通りTupleを使う方法もあって、コードサイズ(dynamicはすごいものに展開される)とおそらく実行効率(dynamic処理が不要だし、ボクシングも不要ではなかろうか)は次の方法が一番良い。のだけど、プロパティ名のかっこ悪さと意味の無さが、コード可読性についてはobject配列とほとんど同じ(匿名クラスであればプロパティに意味のある名前を使える)で、それがすごく気に食わない(ので僕の中では完全に無かったもの扱いになっていた)。が型付けされている分、object配列よりも良いことはもちろん良い。というわけで下はTupleの例。

using System;
class MVal 
{
    static Tuple<int, int> mfunc(int x, int y)
    {
        return Tuple.Create(x + 1, y + 1);
    }
    static void Main()
    {
        var t = mfunc(3, 4);
        System.Console.WriteLine(t.Item1 + ", " + t.Item2); // => 4, 5
    }
}

さらに追記:確認したらTupleのItemXプロパティは構造体は構造体でボクシングされていなかった。

  IL_001a:  callvirt   instance !1 class [mscorlib]System.Tuple`2<int32,int32>::get_Item2()  <-- スタックトップにint32のItem2の値が乗る。
  IL_001f:  box        [mscorlib]System.Int32    <-- Console.WriteLineの引数にするためにスタックトップをボクシングする。
本日のツッコミ(全2件) [ツッコミを入れる]

_ mayuki [利用箇所が局所的であればTuple.CreateでTupleを作って返すので事足りそうですがどうでしょうか?]

_ arton [もちろん、全然OKなんですが、TupleってItem1とかItem2とかいうプロパティ名が最悪ではないですか? こん..]


2015-09-23

_ 黒衣の刺客

新宿ピカデリーで侯孝賢の黒衣の刺客。

いきなり説明。唐末期、辺境諸族からの侵略を防ぐため節度使を配したが、逆に節度使が地方軍閥化して易姓革命をうかがうに至った時代の物語である。魏博が舞台である。

白い服を着た女性が黒い服を着た女性に、悪徳役人を殺すように命じる。たやすいことである。馬の列が道を通る。森の中を黒衣の女性が進む。あっという間に首を掻き切って姿をくらます。役人はしばらく馬を進めて崩れ落ちる。風の音がする。背景に大きく揺れ動く木群。しかし手前の満開の花をつけた木は大して揺れていない。映画だ。

子供を遊ばせる偉そう服を着た男、妻、女中たちと幼い子供。蝶を子供が捕まえようとするので、握ってはだめだと教える男。蝶は手を逃れ、男の肩に止まり、高く飛んでいく。子供はがっかりする。マリ遊びをしよう。子供は左端へ消える(サイズがスタンダードだと気付く)、位置を直してマリ遊びが始まる。男が子供を抱いていると、布を幾重にもくぐって黒衣の女性が近づき、去っていく。男、刀を背中めがけて投げる。女性、振り向きざまに右手の刃物(妙な曲がり方をしている)で払いのけて去っていく。

白い服を着た女が技は良いが心がまだだというような説教を垂れる。従兄を殺せと言って追い出す。

はて、これはなんだ?

とみていると、母親(やはり大量に女中を侍らせているので金はありそうだ)のところに道士(とここで白い服の女性がわかる)が来て、娘を返すといって去る。

風呂の用意。

母親は琴を弾く。爪弾いてから弦を揺らしてうねらせる。

匈奴のもとに送られた夜鳴鳥(じゃなかったけど)の逸話を語る。映画の中で物語を語るのは好きだ。

と、徹頭徹尾映画で楽しい。

娘と男はともに、朝廷から魏博へ嫁いで来た公女から、朝廷と和を保つように壁を渡されたことが母親によって語られる。壁は決意の意味を持つ。公女は都から連れて来た家来を返し、財産を廃棄してこの地に溶け込もうとした。

男が魏博の節度使とわかる。また殺しに行く。が見ているだけで踵を返す。節度使剣を取って追う。屋根の上で戦う。勝負がついたところで殺しもせずに屋根から飛び降りて去っていく。寵姫(と後からわかる)が机の上に残された壁に気付く。戻って来た節度使へタイミングを計って渡す。節度使、自分の壁と比べて、あれは隠娘だ、と過去の因縁を寵姫へ語る。

公女から二人へ与えられた壁だ。元は婚約していたのだが、父が地元の豪族に取り入ることを考えて、婚約を破棄して豪族の娘と結婚したのだ。隠娘は鳳凰のように屋根から庭へ降りてきて衛兵に傷を負わされる。心配した両親が道士の元へ出したのだ。帰って来たのか。

節度使の前で他の2郡と組んで反朝廷側へ回るかどうかの会議となる。朝廷との和平を献策されると怒り出す。靴の先端のくるくるが印象的だ。

両親の家、父親が献策した男が左遷されることを話す。中風になったと話したところで治療中の姿となる。

節度使、父親を呼び出し、左遷先への護衛を命じる。生き埋めにはさせるな。

一方、正妻(とわかる)は部下から月経ではなく鶏の血だと報告を受ける(寵姫が妊娠したということだなとわかる)。部下へ、生き埋めの指示を出す(地元豪族の娘だからだなぁと政治事情がみえる)。

別の怪しげな道士の爺さんのところに地元勢がやって来て生き埋めの算段をして出発する。

馬で追いかける。待ち伏せに合うが、逆方向から回りこんだ追手の矢でばたばた倒れる。父親も背中に槍を受けて倒れる。

左遷された男の生き埋めが始まる。父親は立たされているから死んだわけではなさそうだ。

川で水を汲む男登場。

上にのぼり、生き埋めを止めようとして立ち回り。多勢に無勢で逃げ出す。逃げきれずに木に投げ剣で釘付けされたところで、隠娘登場。追手を倒す。

父親、薬をもらいながら道士の元へ送ったことについて何か愚痴を言う。

篳篥と笙の楽の音がする。日本の音楽だけどなぜここに出てくるんだ? 結婚式っぽい。

水汲み男、鏡を磨いて村人に見せる。水汲み男のフラッシュバックなのかなぁ。

(このあたりに異様に美しい、霧が回転する池の長いシーン)

戦闘。隠娘、仮面の女に襲われて戦う。仮面を叩き壊すが、背中に傷を負い、水汲み男に治療してもらう。

爺さんの道士、紙の人形に巫術を施す。水に浮かべると溶けて消える。

山の頂上から下界を見下ろす女の道士。隠娘がやってくる。戦う。隠娘逃げる。道士右手が血まみれなのを背中へ隠す。扇は左手に持ち替えている(それとも最初から左手だったかな)

廊下を歩く寵姫と女中たち。くらくらして柱を抱きかかえる。女中たちがやって来ると突然シューシュー煙が身体から立ち込める。逃げ出す女中たち。

庭からいきなり隠娘登場。寵姫に活を入れる。煙が止まる。そこへ節度使登場。戦いが始まる。隠娘、妊娠しているぞと告げて逃げ去る。

部下が人形を発見。公女が急死したときも同じものを見つけたと見せる。

軍隊が爺さんの家を襲って矢で打ち殺す。

山羊がたくさん木の柵の中で飼われている。

隠娘、馬を連れてやってくる。

水汲み男が約束を守ってくれたと踊り出す。新羅へ連れて行ってくれるんだ(雅楽も新羅あたりに源流はあるのだろうから、新羅の音楽だったのかな?)。2人で旅立つ。

おしまい(ちょっとあまりに遠景だったがゲルマンの神々の黄昏のラストを思い出した)。

え?

と、物語はほとんど説明がないので(物語内物語は、匈奴の鳥や、過去の因縁とか多少あるが)筋の流れがほとんどわからないが(寵姫のところや朝廷派と地方豪族の闘争のような旗色鮮明なものはわかるけど、節度使の内心とか、母親と公女の関係とかわからない点が多い。匈奴の鳥の話を映画で語っていたのは母親のようだが隠女の会話では公女のもののようだし、道士の立ち位置も悪徳役人の成敗という最初の暗殺以外はいまひとつ不明確、水汲み男に至ってはなんだかさっぱりわからない)、映画としては最初から最後までまったく弛緩もなければ退屈もなく、ひたすら怒涛のような映画でびっくりした。ここまでおもしろい映画は無い(ゴダールの3D映画ですら、これに比べればゆるゆるだ)。

映像はフィルムだと思うのだが、色を抜いてから再着色したような効果や、不思議な合成やいろいろ凝らしていて妙な美しさがある)

それにしてもこれはなんだろう? チェンカイコーの武侠映画(無極とか)にあてつけたのかなぁ?(単にその時点での流行の問題なのだろうが、娼館映画(海上花と花の影)、役者映画(戯夢人生と覇王別姫)とたまに競作のような状態になるのが興味深い)


2015-09-24

_ マットレスを買いに大塚家具の有明本社ショールーム

妻がベッドを買うというので、いろいろ考えた(妻が)末に、大塚家具の有明本社ショールームへ行った。

正直なところ妙な騒ぎがあったので大塚家具にはあまり良い印象を持っていなかったのだが、なんというか、数は力ということを実感した。

つまり、買い物体験として良いものだった。

3階でエレベータを降りてショールームの入り口へ行くと、なるほどこれが大塚家具なのですなという感じで早速案内が入り、(冷やかしではないので)ベッドを探している旨を伝えるとアドバイザーがついてベッドのほうへ案内してくれた。というか、無茶苦茶に広いので案内されなければ確実に迷子になりそうだ。

最初にカチンコチンにバネがきついベッドと、相当上にふわふわ部分が付いたベッドの2つ(どうもこれは売り物ではなく、マットレスとはどういうものかという説明用っぽい)に順に寝そべらせて(すべてのマットレスには靴を脱がずに済むように足元にはカバーがついている)背中に基準値を与えられる(ということだと解釈した)。

それから、おそらくこちらの風体からアドバイザーが決めたらしい価格帯のベッド(用意されている数が半端ではないからここは必要なのだと思う)を次々と試寝させてくれる。

価格帯としては、100万円越え、80万、50万、30万、20万、10万以下の6レベルくらいの感じだ(フレーム込みの価格になっていて、大抵高いマットレスは高いフレームと組み合わされているからマットレス単体だと6~7掛けくらいの感じ)。

ということは、金額ボリュームとしては80万、客ボリュームとしては20万くらいが売れ線っぽい。こちらは普通の冴えない中年夫婦なので20~30万ゾーン中心にいろいろ試させてくれたのでその観察は正しい。(特殊ベッドとしてリフトが付いたものなども10種類くらいは置いてあったようだ)

時間にして3時間くらい試しまくった。

最初は名前を覚えてないやつ。それからフランスベッド(悪くない)。最近の少し上の価格ゾーンのマットレスは中心あたり(つまり腰があたるあたり)のスプリングを頭や脚の部分より硬くしているらしい。

妙に背が高いのがあって興味を惹かれた(50万ゾーン)のがあったので、それも試した。なんか有名人が利用しているというような能書きがあったが、ちょっとふかふか過ぎかな。それからついでに100万越えを(興味がないのでホテル名を忘れたが、30万越えクラスからは大抵~ホテルのスタンダードだの~ホテルのスィート用といった能書きがつく)試しまくる。どれもふわふわで気持ち良い(多分、スプリングはきちんと硬くて上の部分をどれだけ適度な沈み心地で抱擁されている感を演出できるかがマットレス屋の腕の見せ所と感じた)。

それに比べると10万~30万クラスはふわふわよりも適度な弾力の演出が中心のようだ。と書いて気付いたが、こちらの購入希望がふわふわよりも適度な弾性だと判断してその手のマットレス中心に試させた可能性が高い。同一価格帯でも1/3程度しか試寝していないからだ。100万越えには適度な弾性というような持ち味の製品はなかったから(そもそも10種類弱しかない)、普段遣いのマットレスならではの持ち味なのかも知れない。

スランバーランド: 妻は結構気に入ったようだが、僕にはあまりぴんと来なかった。コイルが2段になって入っているのが特徴らしい。このクラスでは最高価格という印象のほうが強い。

シモンズ: ちょっと固め(身体が浮いている感じで気持ちが良い)、同じ上物でちょっとやわらかめ、上物が多少ふわふわ系(悪くなかった)でスプリングは固めの3種類を試した。普通に良い感じ。

レストニック: なんか売り込みに力が入っているメーカー。中国製の異様に安いものもある(寝心地はそれほど変わらないが、耐久性とかわからないからアメリカ製のほうを勧めるとか言われた。まあ、10年使わなければ本当のところはわからないが、10万円以内でまともなスプリングのマットレスを買うなら、レストニックの中国版が一番だなと思った)。アメリカ製のはシモンズと同程度の価格帯。異様なでこぼこの表面で少し固め(いささかごつごつし過ぎているように感じた)、表面のふわふわ感はないが身体が気持ちよく浮いている感じのやつ、それより多少ふわふわの3種類を試した。良い感じ。

というところまで3メーカーに絞ってあとはさらにどういう寝心地で行くかをもう少し本格的に(でもベッドスプレッド無しなので微妙な感じではある)寝ながら絞っていった。

なんちゃらカズキみたいな名前の人なら、ここでさんざん試したあと、買わずに帰って価格.comで同じものの最低価格のもの買うのだろうが、素直に購入。

後になって、説明にやたらとアメリカのほうがベッドの歴史が長いから云々みたいな能書きが多かったなと思い出して、実際のところアメリカでのマットレス評価というのはどうなのかをちょっと調べてみた。

いろいろ眺めた感じでは、sleep like the deadというサイトがいろいろ比較があっておもしろかった。

ここではとにかくスプリングマットレスの評価は低い。マットレスのトップブランド比較では、スプリングは軒並み低くてテンピュールの評価が高い(その一方、綴りが微妙だがヘルニアや頸椎の問題を抱えている人は絶対買うなというのもあるので、健康な人にはきっと良いものなのだろう)。

眺めていておもしろいなと思ったのは、比較項目にsex friendlyという項目があることで(マットレスの評価という点から、確かにそういう項目があるのはうなずける)、この項目だけは全体的にスプリングの評価が高い(マットレスとセックス)ことだ。あとモーションアイソレーション(パートナーが動いた場合の感知ということはダブルベッドでの話だな)という項目があるのもおもしろい。

そういえば大塚で扱っているマットレスのうち、英国のスランバーランドが出ていないのはともかくレストニックがトップブランドの比較表に出ていないなと思って調べると、メーカー別のランク付けはあった。要は並のブランドということのようだ(日本酒でいえば月桂冠みたいなものかな)。買いやすさがAというのがブランドとしての位置づけなのだろう。

B00VJGWVWE

(シモンズについてはアマゾンで買うのと値段はほとんど変わらないようだ(ぱっと見同じような価格だ))


2015-09-25

_ Visual StudioでLuaのDLLをビルドする方法

ToruさんのLua組み込みプログラミングを購入して、Githubのサンプル一式を取得して(なんとなくfolkしてしまったが)さて読みながら組み込みプログラミングを試してみようと思ったら、そもそもLuaがVisual Studioで構築できない(5.2.3のソースがレポジトリに含まれている)。Nmakeするとプラットフォームの指定を促されるが選択肢にはVSとかMSとかないし、無理にGenericを選んでもMakefileの中で&&とか使っているのでエラーになる。

Visual Studioで組み込めないなら、仕事用には一切利用できないということで、せっかく覚えてもあまりにつまらない(Visual Studioでビルドできないプログラムは使えないからだ。ソースコードの修正ができないオープンなソフトウェアを仕事用に使うわけにはいかない)。

しかし、lua.orgで探したら、Visual Studio用のバッチファイルが用意されていた。

以下、手順。といっても極めて単純だ。

5.2 extrasからluavs.batをダウンロードしてlua-5.2.3ディレクトリへコピーする。

コマンドプロンプトを開いてvsvars32かvsvars64を実行するか、またはvs2015の開発用コマンドプロンプトを開く。lua-5.2.3へ移動してluavsを実行するとsrcディレクトリにDLLが作成されているので、それを利用する。

Lua 組み込みプログラミング: Lua 5.2.3 対応版(Toru Hisai)

追記:やたらとライブラリのMakeが早かったのが印象的だったが、この後、Toruさんから直接Luaのソースと組み込むプログラムを一緒にコンパイルするほうが普通と教わった。確かにあの速度なら一緒にコンパイルしたほうが良いのだろうな。


2015-09-26

_ うつうつひでお日記を読む

ずいぶん前に確か上原のおしゃれな古本屋さんで買って放置してあったうつうつひでお日記を読んだ。

うつうつひでお日記 (単行本コミックス)(吾妻 ひでお)

全然おもしろくなくて無茶苦茶におもしろかった。

印象的なのはやはり10月21日が2回あるところと、大森望が萌えの元祖は吾妻ひでおとか書いているのを読んでそんな気持ちの悪い言葉は知らんと怒るところと、最後の最後に、失踪日記が大評判となって次々とインタビューや原稿執筆依頼の電話がかかってくるところだ。何度も味わってしまった。

北海道新聞です インタビューお願いします

週刊朝日です グラビアページに出てください

ダ・ヴィンチです 「この本にひとめ惚れ」のコーナーに

集英社です 文庫にする時はぜひうちで

NHKです

文化放送です

壺 買いませんか

ママ お話 聞かせて

ゴン おまえ だったのか

激変ぶりに調子が狂っていってアシスタントAがかあさんに変わっていたりとか。

何しろマンガ家の日記なので、ネタ出ししてネーム考えて絵を書いて本を読んで散歩してタバコ吸ってテレビ見て女子高生を眺めて絵を書いてが延々と繰り返されるだけなのでおもしろいはずがない。

チャンイーモーのヒーローを眺めて描いたらしいこの絵がいちばん好きかな。

娘剣侠

なんでこんなもの読んでいるのだろうと不思議になりながら、それでも全部読んでしまったのは、結局、日常は不条理であるということなのだった。

あー、おもしろかった。ゴン。

#最初の頃から、手塚治虫の流れを汲んだ丸っこい絵(ワンダースリーのウサギっぽい)だったけど、この作品の女の子の脚はなんか極端に丸っこい気がする(上のヒーローのは比較的すっきりしている)。前からこうだった(のが時代の流れであまりに太く見えるように感じる)のか、趣味がますます丸っこくなったのかどっちだろう?


2015-09-27

_ 徳川家康の教育論

妻が図書館で江戸の子育てという本を借りて来たのでぱらぱら読んだ。

最初の章が徳川家康が秀忠におくった子育て論で、これがなかなか強烈でおもしろい。

江戸の子育て (文春新書)(中江 和恵)

家康の最初の子供(信康)は、母親(つまり家康の妻)は今川一族、妻は信長の娘(ちなみに結婚時、双方12歳くらいで、2人の娘をもうけたが、これが男子が欲しい母親にはおもしろくなく、嫁姑大戦争になったらしい)で、政治的に非常に微妙な位置にあるうえに、武田氏内通者による謀略などいろいろあって、結局、妻が父親(つまり信長)に送った讒言がもとで腹を詰めることとなった。

家康は後になっていろいろ思うところがあったらしい。

で、自分は若く愚かで長子ということでまったくわかっていなかったと反省しながら(老境になってきちんと反省するというのは確かに天下餅を食えるだけの器量人なのだろう)、次のように書いている。これが帝王学というものはこういうものですか、というくらいに生々しくておもしろい。

幼い子はしばしば、自分の気に入らないことを聞くと、そばにある物を投げたり放ったりして壊してしまうことがあるが、「虫気」だからと思ってそのままにしておくことは、親が子どもをますます悪くするようなものだ。(略)

物は壊してもそれだけのことだが、のちには召し仕えている者が気に入らぬことを言ったからと手討ちにし、気がさえざえとするようになるから、病気が根深くならぬうちにはやく治すことだ。

家康は秀忠へ二人の息子の教育用にこうのこしたわけだが、特に次男の国松が駿河大納言忠長になるところが、忠告が遅かったのかそれともそういうものなのかと無常になるのだった。

[まとめ買い] シグルイ(山口貴由)

_ 宗教ではなく歴史を学ばせる

同じく江戸の子育てで、幕末に日本を訪れたロシア正教会の宣教師ニコライの観察もおもしろい。

春先に道を歩いていると、凧を挙げている子供を見かける。

その凧に描かれている異様な人の顔のことが知りたくなって、子供たちに、それは誰を描いたものなのかと尋ねてみる。子供たちは口々に先を競って言うだろう。清盛だ、尊氏だ、等々と。そしてきっと、詳しく歴史を語って聞かせてくれるだろう。母親や兄が、凧を出して糸を整えたりしてやりながら、その子供たちにこうした歴史上の人物たちのことを語ってくれたのである。凧の裏には、そうした人物たちについての短いエピソードが刷られているものも多い。

2つの点がおもしろい。

ロシアで人の顔が書いてあって子供が家族を通じて歴史を学べるとしたら、間違いなくイコン経由で聖人のエピソードとなるだろう。おそらく、多くのキリスト教国でそうなるのではなかろうか。

でも、お江戸では異なる(ふと気づいたが、中国も三国志や西遊記のお面などから入りそうだから、やはり歴史が主となりそうだ)。

これがまずおもしろい。

歴史上の人物という記号性が薄いエピソードによる教育というのは、聖人のような絶対的な価値基準を持つ記号的人物のエピソードよりもはるかに価値観の多様性を生むのではなかろうか(現実にどう効果があったかはわからないが)。

次に、ここで例示されたものが、清盛と尊氏で、いずれも明治以降、反天皇(あるいは天皇家簒奪)のコンテキストで悪人とされる人物という点だ。江戸→明治、太平洋戦争→戦後の2段階にわたって、歴史の善玉悪玉がころんころんと転回したのだなぁ。これもまた価値観の多様性に通じるはずだ(はずだけどなぁ)。

江戸の子育て (文春新書)(中江 和恵)


2015-09-29

_ 夏の沈黙

何かで見かけておもしろそうだから買った夏の沈黙を読んだ。3時間くらいで全部読んでしまった。息もつかせぬおもしろさでは全然ないのだが、構成がうまいので途中でやめる気にならないところがうまい。小説としてはなかなか良いできだと思う。

最初(いや全体だな)、2つのシーンが交互に進む。

1つは現在の弁護士とテレビディレクター夫婦(でも子供はぱっとしない)の家庭の情景だが、妻はいつの間にか読むことになった本のために恐怖にかられている。

もう1つは2年前の、妻を亡くしてやけになっている高校の英語教師(まて英国の話なので国語の教師だろう)だ。どうも指導力はありそうなのだが、まだ明らかにされていない事情から、生徒の宿題文にどうでも良いことだとか乱暴な添削をしたせいで職を追われることになる。

テレビディレクターの妻は引っ越したばかりの家で恐怖にかられると同時に見えない敵と戦おうともする。

国語教師は、2年前に死んだ妻の遺品を整理しているうちに、妙な写真、次に小説(二人とも作家志望で小説を書いていた)を見つける。二人の子供はどうも死んだようなほのめかしがある。

どうも、国語教師の子供にテレビディレクターが何かよからぬことをしてじわじわと復讐しているのかな? という構造が薄らと漂いながら物語は徐々に2つのシーンの間隔を狭めながら交差する(が、テレビディレクターのほうは三人称、国語教師のほうは一人称という使い分けがある。三人称のほうは、登場人物の本心は見えない。一人称のほうは、本心が語られる。なぜアシメトリなのだ? と疑問に思いながら読み進めると、一応、それが必然ということがわかってくる)。

物語内物語(国語教師の妻が書いた小説が途中までは謎めき系(何が書かれているのかわからせない)で、途中からは弁護士のリアルタイム読書モードで掲載されるようになる)がソフトポルノなのは、英国の書籍市場(以前、何かで電子書籍が出てからソフトポルノが異様な売り上げを見せるようになったというのを読んだ覚えがある)だからかな?

B00XN6FKU8

ミステリーではあるが、どちらかというと、サイコホラーに近いかも知れない(ディレクターのほうは追いつめられて異常行動を取り始めるし、国語教師は冷静なようでいて何か異常行動っぽくもある)。

妻が英国製のミステリーは底意地が悪いので好きだと評していたが、これもそういう趣がある作品だった。

心理的におもしろかったのは、最初の印象通りに、国語教師は理解力がある良い人間で、テレビディレクターは自立心が異様に高くて、弁護士(夫)は世間体で生きているという線は最後まで崩されないことだ。

本筋と関係ないところでは弁護士が労働党の党員(立候補することも可能)で、テレビディレクターも忙しくなる前は労働党の党員というところに、コービンより前の労働党の雰囲気が見えておもしろい。

あとテレビディレクターの母が痴呆気味なのだが、週2回ハウスキーパーを利用する以外は自立した生活を営んでいる(途中からテレビディレクターが転がり込むが結局また一人暮らしとなる)のがなかなか印象的だった。


とは言えこの小説はあまり気分が良いものではない。

眼目は死んでいる二人の関係性にあるからだ。

最後、国語教師は自殺するが、それは贖罪とかそういうものではなく、家族の実相を知って絶望したからに違いない。

最初に写真の被写体を勘違いしたことにこそ、この作品の肝があるのだろう。


2015-09-30

_ Pebble日本語言語パックインストールメモ

Pebbleに日本語を表示したくなったので、Pebble 日本語言語パックを入れてみた。

使っているPebble(Timeは付かない。2.9.1)とPebble App(2.4.0 Android)の組み合わせだと素直なインストールができなかったのでメモ。

1)Firefox(この件に関してはChromeを使おうがデフォルトブラウザーを使おうが同じと思う)からpbJapanese_j06.pblをクリックして、「アプリを利用する」でPebble Appを選択すると、Pebble Appに切り替わって、この言語パックはアンインストールすると再ロードが必要な旨が表示された後、一瞬Installingと表示されて何も起きない。→この方法はだめ

2)FirefoxからpbJapanese_j06.pblをクリックして、「アプリを利用する」でFirefoxを選択してダウンロードする。次にFirefoxのメニューで「ツール」-「ダウンロード」を表示して、pbJapanese_j06.pblをクリック。ここで開くアプリケーションとしてPebble Appを選択すると、アンインストールすると再ロードが必要な旨の表示後、今度はプログレスバーが表示されてインストールが始まる(0%からしばらく動かないが待っていると進む)。

どうも、Pebble Appはローカルファイルしか扱えないのではないかと思う(URIを与えられてもインストールできないようだ)

3)この時点で日本語が設定されているのだが、Pebble AppのSettings-Language Settingsは空白となっている。

空白なので設定が必要かと、Language SettingsをクリックしてSelected Langugageを見ると、日本語という項目はなく、Deutcshから中文(繁體)までのデフォルトで入っている言語のみが表示されていて、かつ何もチェックされていない状態となる。

が、これは表示だけで、実際には日本語が設定されている(メニューが更新できず、プリファレンスのリストに表示できない場合は空白になるということなのではなかろうか)。余分なことせずそのままにしておく(余分なことをすると、結局、その言語設定になってしまい、再度日本語を設定するには2)からのやり直しとなる。

見事に使えたのでPayPalでドネーション。


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|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

ジェズイットを見習え