トップ 最新 追記

日々の破片

Subscribe with livedoor Reader
著作一覧

2015-11-02

_ メトライブビューイングのイル・トロヴァトーレ

東劇でイル・トロヴァトーレ。

レオノーラはネトレプコ。どうもおれには1幕の歌はテンポではなくトーンがオーケストラと微妙にずれているような気がして少し気持ち悪かった。が、演技ひっくるめると、文句ないかなぁ。終幕は素晴らしい。幕間のインタビューではずっと子供が邪魔をするのだが、それが許されてしまうところが、どれだけメトにとっての看板として大事にされているかということだろう。

ホドロフスキーが出てくると拍手がやまない。脳梗塞からの復帰というのはすごいものだ。カーテンコールでは舞台上のアルミリアートがオーケストラに向かって手を振ると、団員たちが一斉に白いバラを投げつける。

思い出してみれば、おれが最初にイル・トロヴァトーレを観たのはホドロフスキーとクーラのロイヤルでの映像なのだが、ずいぶん好々爺っぽい感じはしてきたが、感情的には不幸のどん底をのたうちまわりながらも(身分も戦争でも文句なく勝者なのだが)堂々たるルーナ伯爵が実に似合う。

ヴェルディ作曲 歌劇 イル・トロヴァトーレ コヴェント・ガーデン王立歌劇場2002 [Blu-ray] [Import](カルロ・リッツィ(指揮)/コヴェント・ガーデン王立歌劇場管弦楽団&合唱団/イライジャ・モシンスキー(演出))

マンリーコはヨンフン・リーで、3.11直後のメトの来日ではカウフマンの代わりにドンカルロスを演じたから、おれにとってこれが2回目になる。あの時は、声量が足りないと感じたが、これまた堂々たるマンリーコだった。4年たつのだな。

アルミリアートの笑顔はいつ見ても感じが良い。序曲では、左に向いてさわさわと振って、金管の斉奏の直前にぱっと正面を向いて大きく振る。

中尉は良くみる人(スパラフチーレを観た覚えがある)。好きだな。

マクヴィカーの演出は回転舞台をうまく使って場面転換をほとんど切れ目なく行う。兵士が集う中庭からバルコニーがある中庭に瞬時だ。

最終幕の演出は少し考えがあるようにみえた。地下牢のある塔の内側に忍び込んだ状況ではなく、塔の外側で始まり、ルーナ伯爵と共にレオノーラは去り、地下牢の内側でマンリーコとアズチェーナになる。レオノーラが外にやって来て、白い服に変わっている。

物語の奇怪さは演出のせいで随分と正されている。

神の沈黙としてとらえれば、この作品は不信心者の饗宴なのだ。

ルーナ伯爵は2代続いてジプシーを火あぶりにすることに躊躇はないが、まったくカトリックを重んじていない。2幕では修道院を襲撃することにもまったく躊躇がない。

レオノーラはマンリーコが生きているとしるや、ころっと修道院入りを取りやめるし自殺を選択する。

マンリーコと仲間たちも平然と修道院を襲撃する。

1人、アズチェーナだけが二言目には信心を口に出す。

そのアズチェーナの混乱をすべての中心に置けば、それほど奇怪な物語ではなくなる。

そして最後に唯一の信心者であるアズチェーナの復讐の成就で幕を閉じる。


2015-11-03

_ やっとたんぽぽ娘を読んだ

本屋でいつも探していたのだが見つからないまま、たまたま妻について図書館へ行って、なにげなくヤングの棚を見たらあった。

妻に頼んで借りてもらって読んだ。

たんぽぽ娘(ロバート・F・ヤング 著 / 伊藤典夫 訳 / 牧野鈴子 装画)

どういうコンテキストか覚えていないのだが、(奇妙なはなしのアマゾン評を読んで気にしたのかな?)とにかくたんぽぽ娘を読もうとしてから8年と半年たってのことだ。

1961年の作品なのだろうか?

1961年は、住むにはいちばんよい時代じゃないかしら!

妻が陪審員として召喚されてしまったため1人で休暇を過ごすことになった44歳の弁護士が、丘の上でたんぽぽ色の髪をした少女と出会う(21歳ということは半分以下の年齢なので弁護士にとっては十分に少女だ)。

彼女は240年後から来たと言う。大きな会社の秘書になりたいという妙な夢を語り、物理学者の父が作ったタイムマシンでやって来たと言う。

弁護士は20年前(つまり1941年なのでアメリカが太平洋戦争に巻き込まれたか、または巻き込まれるように仕込んだかの)に自分の事務所の秘書と結婚して子供がいることを話す。

どちらも家に本がたくさんあることがわかり自然と書物からの知識を通じた会話となる。240年後から来たにしてはなぜか一番新しい話題がe = mc**2だったりハイデッガーだったりするのはとても奇妙だが、二人ともそんなことには気づかない。

恋に落ちたからだ。

時間というものはとても不思議なもので、ある主体の周囲をすっぽりと囲んだままその外側だけが過ぎて行く(まるで乗り物に乗っているようなものだ)。だから自分は年を取らず、身内も年を取らない。年齢を意識するのは、完全な他者の視点(その乗り物の外)にたったときだ。

悪くなかった。

まさに掌編と呼ぶべき趣がある。

なにか不思議な気分が残る類の作品だった。

本のカバーと挿絵は牧野玲子という人が描いていて(最初萩尾望都かと思った)、ウサギとシカと白いドレスのたんぽぽ娘、それと1961年の人物というよりも19世紀末の雰囲気を漂わせた弁護士が描かれている。


2015-11-04

_ NHKの藤田嗣治

(このあたりに見たはずだが覚えてない)

夜中に何気なくテレビがついていて見始めたらおもしろくて、最後まで見てしまった(最初に見ていた妻は眠ってしまったがうさんごろうはそんなものだ)。

うさんごろとおばけ(瀬名 恵子)

おれが知っている藤田嗣治は、戦争画をかきまくって軍部に協力しまくって戦後フランスに逃亡したろくでもないやつという(多分、戦後史共通の)認識でしかなかったが、この番組(多分、NHKではあるが映画の宣伝もかねている)では異なる視点を提供してくれた。

そもそもその戦争画も、おれの記憶では近代美術館にある、妙に薄暗く、とうてい戦意が高揚されるような代物ではなく、妙なギャップを感じたものだが、それは当然のように戦後であっても公開できる範囲の作品という選択であろうなぁと納得していたのだが、それもまったく筋違いだったようだ。

まず、美大卒業制作の自画像がしびれる。

東郷青児が、戦後にやたらとはやった三流のマリーローランサンみたいな作家だと思っていると、実はびっくりするほど鋭利な自画像を若書きしているのだが、戦前の画家というのは自画像を見てからものを言うべきなのかもなと思った(で、これで二度なので三度も四度もあるに違いない。というか、戦前の美大の卒業制作は自画像という決まりでもあったのかな)。

で、日本で適当に暮らした後、本場のパリでなくてはとパリへ行く。

ここまでは裕福な子弟だったのだが、第一次世界大戦になって日本からの送金が途絶えて極貧生活となる。

隣にはモジリアーニが住んでいるというような場所だ。

極貧なので、近所の肉屋に「ネコのえさにする」といって屑肉を買っては食べる生活を送る。

ある日肉屋が「おめぇさん、ネコ飼ってねぇじゃねぇか」と指摘される。

藤田は「ミューミュー、おれさまがネコだ」と叫ぶ。

なんか、PKディック(あれはイヌの餌だった)のエピソードのようだ。

で、何をしているかというと絵を書いている。とにかく書いている。朝から晩まで絵を書いている。

ついに、忘れたけどなんかのコンクールの特選となる。

その絵が出てくる。周囲がグレーの布。全体は白い寝台に白い裸婦。髪と脇と陰部だけが少し黒い。輪郭は黒く、肉体の重なりは薄い黒い線。日本画用の筆で輪郭を描くことと、独自の配合で作った白を使う。

これは見ただけで印象的な作品で、なるほど、確かに出世作以外の何ものにもなれない作品だ。

で、狂乱のパリへ進み、日本へ帰国し戦争画を書きまくる。

その戦争画はドラクロアなどの影響を持つという近年の指摘から、美術史の再構築をしていたようだということがわかってくる。

自分のための礼拝所をつくり死ぬ。フレスコ画の制作に身魂かたむけたせいか落成して1年後に逝去。群像の中に中年の藤田がいる。ランス。

途中ではさまる小栗の映像は、勘違いした長回しっぽくてあまり好きにはなれないが、藤田の作家史は実に印象的だった。

最後の棲家から見つかった、膨大なデッサン。わ、巨匠のデッサンだという緻密さがある。

やっぱり朝から晩まで絵をかきまくっていたのだった。

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

_ klmquasi [> 美大の卒業制作は自画像という決まりでもあったのかな 東京美術学校西洋画科 (いまの東京藝術大学美術学部絵画科油..]

_ arton [おお、なるほどそうなんですね。疑問が解消しました。どうもありがとうございます。]


2015-11-07

_ ダンゲロス1969を読んだ(おれは好きだがなんだこれ)

なんかはてぶの上のほうに、山田風太郎の2文字が見えたので(面倒だから探さない)読んだら、ダンゲロス1969が、風太郎忍法帖のように下品でおもしろいと書いてあったので、ちょうどKindleが空になっていたので買って読んだ。

おもしろい作品の例にもれず、結局2日ちょっとで読んでしまった。

1968年から1969年の並行日本が舞台だ。並行日本には、魔人という特殊能力を持つ人間とそうでない人間がいる。

・まず、「魔人」と言う言葉のおかしみがあって、この時点でおれはこの作品が好きだ。

戦前戦中の日本の支配層は主に魔人だったが、GHQによってほぼ組織解体やパージされることで、どうにか生き残っている状態にある。

ちょっとした魔人中学生のいたずらによって千葉-東京ラインが壊滅状態になり、警官による魔人中学生暗殺が行われる。それが契機となって、魔人が地位向上に目覚める。

その目覚めは学生運動に波及し、時は1968年、安田講堂に立て籠もったプロ魔同、早稲田を根城にする革マジなどの派閥が生まれ、魔人解放運動が燃え盛っている。

話は、安田講堂に各派閥が終結し(ブンコ)、公安警察の魔人群との攻防戦を中心として展開する。

これ、おそらくおれが初めて読むラノベというジャンルなのだが、読んでいて、中学生に戻ったような気分に襲われた。それほど悪い気分ではないが、気持ちは悪い(内容ではなく、おれが襲われた気分のことである)。

まず、その学生運動パロディが中途半端に本格的なことに引っかかる。

誰がどう読もうが、それなりに理性的な雰囲気から(全然時代は違うが)プロ青同にしか思えないプロ魔同(東山君虐殺の頃に顕在化した催涙弾の水平撃ちが1969年に出て来たりしているくらいなので時間軸がむちゃくちゃなのは問題ないというか、そもそもこの時空に魔人はいないからどうでも良い)、(早稲田という地区にある大学という時点で)革共同以外の何者にも取れない革マジ(ただし、大衆武装路線からはマルじゃなくて中のほうだ)、公然活動路線の魔人インターが4トロで、ブンコはまんまブントだし、三本大学が日大なのに明大だったりして。デタラメな名前ではなく、いかにもそれっぽい元ネタが香るところのムダな凝りっぷりが想定読者層を理解不能なものにしている。

かと思うと、洗剤メーカー「ヨク=オトース」だの団子屋「ダゴン」なんていう名前がその瞬間だけ出て来るのだが、そんな調子でこれでもかこれでもかと無駄な言葉遊びやパロディが詰め込まれている。しかも全然笑えるわけでもない(スラプスティックコメディのようなのだが、まったく笑いどころがないのが驚きだが、かといってつまらないわけでは全くない。不思議な感覚なのだ。次々とネタが飛び出しては通り過ぎて行く疾走感が楽しいのかな?)。10個撃てば2個は当たるわけで弾数が多ければ多いほどくすぐられる道理だし、実績があるから残り8発もおかしみを感じられるわけだろう。

とにかく読んでいて、アーニーという英語遣い(英語は武道と等しい)が、永井豪が描いた超革中(学生運動パロディという共通点のせいだな)の鏡明の姿で目に浮かぶし、全然記憶に残っていないのだが、筒井康隆の俗物図鑑の表紙がちらちらするわけだ(多分、立て籠もった異形の魔人群という点と、おそらくまったく役に立たない異能力が闘争とうまく噛み合う点だと思うのだが、何しろまったく覚えていないのでわからん)。

しかも、むやみやたらと言葉遊びが疾走していくのに、ちゃんとそれぞれの無駄に下品な能力がきちんと噛み合って物語を構成している計算力というか物語の合目的性があって、なるほどそう来たか感(つまりSFの王道だ)まである。能力の掛け合わせで特に感心したのがあったのだが、読み終わった瞬間にきれいさっぱり忘れてしまった。

多分、作家は書いていて楽しかったのではなかろうか。で、読み手のこちらはその楽しさで楽しめたような気がする。いずれにしても、おもしろかったのは間違いない。

どうでも良い言葉遊びではあるが、一か所、非常に気になった点があって、革マジの幹部が逃げ出してそのまま大衆の雲に消えるところがあるのだが、そこは「闘争から召還」という言葉を使って欲しかった。


2015-11-08

_ 大江戸Ruby会議

  • 殺されるかも知れないとなれば、人は3階から飛び降りることもできる。しかも踵の骨にヒビが入るくらいで済む。しかしもし保険に入っていなければ600万円くらいの治療費を要求される(NYでは)。
  • Perlは偉大
  • 正しい実装よりも速度が重要(なこともある)
  • 秘密キーを自分で持つのはやめれ
  • akrさんのライブラリ設計読本が技評から出るらしい。でも題は「ライブラリを支える技術」では無い。
  • RubyはNilクラスがあり、かつオープンクラスなので次のようなこともできる。
    class NilClass
      def method_missing(name, *args)
        nil
      end
    end
    
    しかし、これをやるとディスられる。
  • 無駄に顔文字を使う変な人というキャラ設定でTwitする(左手で書くと謎の筆跡の変な人になれるというデュマの知恵みたいだ)。
  • メディアが百花斉放すれば高品質のコンテンツが生まれる(かも知れない)

2015-11-09

_ 大江戸Ruby会議05の続き

たださんの「大江戸Ruby会議05」へ行ってきたを読んで、そういえば、懇親会の前あたりに、「個人的には興味の移り変わりを俯瞰して「ああ、やっぱりetoさんはアーティストなんだなぁ」としみじみ思ったり」な感想を聞いて(もっとなんというか、軽やかに花から花へ飛び回るような印象の言葉で、おそらくtDiaryが15年(というようなことをおれが言ったからかそれとも逆に受けておれが行ったのか忘れた)というようなプロダクト指向(まつもとさんのRubyはそろそろ18歳だか成人だかとかと比較しても良いかな)との違い)、まあそうかなと思いながらも、何かひっかかりを覚えたのだが、ちょっと思い出した。

ひっかかりは、実は興味はそれほど移り変わっていないのではなかろうかということにあった。

・(名前忘れた)、多分、tracerouteしながら、Webページのリンクを世界地図上で可視化する作品

・インターネット物理モデル

モジュローブ

-これICCに子供と行ったときに相当遊んだ(家に帰ってからもしばらく遊んだ)。子供は確か、最初、平面的なクマの顔を作って、上から振って来るとパタリと倒れてしまうのを見て、立体的な構造に作り直していたような記憶がある。(ウケたのは忘れてた)

・パターン、Wiki、XP

パターン、Wiki、XP ~時を超えた創造の原則 (WEB+DB PRESS plusシリーズ)(江渡 浩一郎/A5)

・ニコニコ学会β

ニコニコ学会βを研究してみた (#NNG)(江渡 浩一郎)

と並べると、そりゃ確かに違う。

が、違うのはリプレゼンテーションであって、リソースは、複数のノードとそれを結合するワイアーが作る動きという点で、一貫しているように思うからだ(ニコニコ学会βは、核となるノードとしてのプロの研究者の間を繋げたワイアーによって作られた網によって、核となるノードの間に点在する野生の研究者を拾い上げて網の形を変化させていくようなアートなのだろうと解釈してみる)。

と書いているうちに、おれが江渡さんから影響を受けてこしらえた作品を思い出した。

WikiGraph(UTF-8なのだが、なぜかCP932でエンコードされて表示されるなぁ)

C2Wikiの構造

Wilikiの構造


2015-11-10

_ NodeJSでちょとつまづいた

Chrome上で動かしている割と大きなシステムがあって、そのうちバックグラウンド側で動く(つまるところ、モデルということだが)スクリプト群に、コマンドラインインターフェイスを付けて動かしたくなった。

で、NodeJSを使う(同じV8だし)ことは決めて、7月ごろにインフラ用の環境を用意しておいたのだが、やっと手が空いたのでいじろうとして仰天した。

NodeJSのWebサイトには、LTSが4.4と書いてあるのに、環境は0.12とか出てくるじゃん。

で、NEWSを見たらいきなり4になったということで納得して(V8 v4.5の4なのか?)、さあ始めるかと始めたところ、ひっかかる。

元のスクリプト群が、リソースを突っ込むためのオブジェクトresを共有しているわけだが、すべてのスクリプトは次のように書いてある。

var res = res || {};
(function() {
    res.thismodule = {...};
})();

当然のように、NodeJS用に作ったローダースクリプトで、次のように書いた。

global.window = { alert: function(s) { console.log(s); } };
global.window.parent = global.window;
global.res = {};
global.window.res = global.res;
require('./foo.js');
...

でも何か動作がおかしい。それで何が起きているか見てみると

global.res = {};
require('./foo.js');
console.log(res); //=> {}
...

はて?

で、要するにvar res = (右辺を最初に評価してグローバルなresを見る)res || {};と考えていたら、var res = (まず全体を評価しているのでこれはvar resで宣言された)res || {};ということのようだ。(requireされたファイルのグローバルはモジュールに閉じられる)

「ということのようだ」は気持ち悪いのでまじめに調べると

A variable with an Initialiser is assigned the value of its AssignmentExpression when the VariableStatement is executed, not when the variable is created.
12.2 Variable Statement

なので、「右辺がついた変数の代入式の値設定は、変数の作成時ではなく、var宣言の実行時に行われる」。ということは、宣言したこのスコープでの空の変数が右辺に出現している扱いとなる、「ということのようだ」。

いずれにしても、しょうがないので、globalのスコープになるように自分でevalすることにして解決。

function load(s) {
  var buff = fs.readFileSync(s);
  eval.apply(global, buff.toString());
}
global.res = {};
load('./foo.js');
...

もっとうまい方法があれば知りたいところだ。

キャンベル V8 野菜ジュース 163ml×6個 マッドマックス 怒りのデス・ロード(字幕版)(ブレンダン・マッカーシー/ニコ・ラソウリス/イアイン・スミス/クリス・デファリア/コートニー・バレンティ/グレアム・バーク/ブルース・バーマン) Node.jsビギナーズガイド: サーバーサイドJavaScriptをマスターせよ! PRIMERシリーズ (libroブックス)(掌田津耶乃)

TODO: 瀧内さんからmodule.exportsを使うというのを教えて頂いたので、試す。

追記:結局vm.runInContextを使うことにした。


2015-11-11

_ 昨日の続き(Brower用に作ったスクリプトをNodeJSで動かす)

残念なことに、module.exports作戦はうまく行かなかった。

前提として、現在ブラウザー(Chromeだけど)で動いている結構でっかなシステムのうち、モデル相当の部分をNodeJSを使ってコマンドラインで実行したい。

実際は、requireがうまく働かないので、スクリプトファイルを直接読んでいるので、やろうと思えば、スクリプトを変形することはまったく問題ないのだが、気分の問題で、それはやらない(と、アーキテクチャを決めたおれが決めたのだから絶対なのだ)。

で、各スクリプトは以下のような形式で書かれている。

var res = res || {};
(function() {
  var ....
  ...
  res.foo = {   // foo.jsは、res.fooを作り、bar.jsはres.barを作る。
    ...
  };
})();

問題は、requireを使うと、NodeJSは新たなスコープ(モジュールスコープと呼べば良い?)を作ることにある。つまり、先頭のvar resは、グローバル変数ではなく、ローカル変数だということだ。

意味としては以下に等しい。

var res = 'abc';  // requireしているスコープ
var fn = function() {
  var res = res || '123';  // requireされたスコープ
  console.log(x);          // => '123'
};
fn();

というわけで、同じスコープでevalすれば良いというわけでそうやったわけだが、おもしろくないことがいろいろある。

一応、動けば良いとはいえ、globalを使うのはあまり良いことでもない(今回は、DOMParserだけ外部モジュールを使ったが、他にも使うかも知れないのでバッティングの可能性は減らせるだけ減らすべき)。それにローダー側(NodeJSで直接実行する部分)とは、環境は分かれているほうが良い。

もっと根本的な問題として、無理矢理ブラウザーで動いていたものを動かすうえに、でっかなスクリプト群の一部なので、依存関係が後から出てくる可能性もある(grepくらいはかけているが、ノーマークのres['abc']にアクセスしているやつがいれば、abc.jsも含めなければまずい)。その他、動的な仕組みもいくつかあるので、動かして確認が必要だ。ということは、例外前提で動かすということになるのだが、evalをしたらファイル名も行番号も無名扱いで、辛うじて行ダンプから判断することになり、それは結構辛いものがある。

で、vmを使って、自分でコンテキストを与えて実行すれば良いということがドキュメントを眺めていてわかった。

というわけで、以下になった。

var res = {};
var window = {};
    window.parent = window;
    window.res = res;
    window.DOMParser = require('domparser').DOMParser;
    window.localStorage = { a: 'default', b: 'default' }, // 使っているやつがいた
var sandbox = {  // 仮グローバル名前空間だが、関数ドキュメントの仮引数名を使
ってしまった。
    res: res,
    window: window,
    localStorage: window.localStorage,
    DOMParser: window.DOMParser,  // window.でアクセスするやつとグローバルでアクセスするやつがいるのでしょうがない。
};
// むむ、今気づいたが、var sandboxではなく、windowそのものをコンテキストにしても良かったな。でも、window.window = window;ってすごく気持ち悪い。
for (var k in global) {
    sandbox[k] = global[k];      // これやらないと、consoleもsetTimeoutも使えない。シャローコピーで十分だ。
}
vm.createContext(sandbox);       // 忘れるとvmに怒られる。
function load(s) {
    var script = fs.readFileSync(s);
    vm.runInContext(script.toString(), sandbox, s); // 第3引数でファイル名を与えると例外のバックトレースが正しく表示される
}
// ここまで用意して
load('foo.js');
load('bar.js'); // 元々fooと同じwindowで動いているのでグローバル環境は共有させる
...
console.log(res.foo); // ちゃんと入っている。(sandbox.resでもアクセスできるが、ガンガン使うので、先頭のようにこのスコープで定義してあるからこれで良いのだ)
console.log(res.bar); // 問題なし

これで、resだのwindowだのを通じてfooやらbarやらとインターフェイスできるし、かつ、こちらのグローバル環境と、fooやらbarやらのグローバル環境の分離ができた。


2015-11-15

_ Ruby-2.3.0-preview1

なんでそんなもの見ているのかわからんけど、gems/2.3.0/specificationsの下がすべて-rw-------になっていて、tDiaryが死んでいた。

とりあえず、sudo chmod -R o+r /usr/local/.../gems/2.3.0/specificationsして動かすようにした。

でもtool/rbinstall.rbをみると

    # fix directory permissions
    # TODO: Gem.install should accept :dir_mode option or something
    File.chmod($dir_mode, *Dir.glob(install_dir+"/**/"))
    # fix .gemspec permissions
    File.chmod($data_mode, *Dir.glob(install_dir+"/specifications/*.gemspec"))

となっているなぁ。

たぶん~/rubyとかにインストールしてしか試していないのでバグがあるのだろう。

zlibの処理を追加して重複したのが原因らしいが、多分最初のほうを削除すれば良いのだろうけど意図が掴みきれないのでとりあえずチケットをきった。


2015-11-22

_ 人を信用する設計と信用しない設計の線引き

Rubyは君を信用するが、Javaは君を信用しない。

それは設計ポリシーで、それ自体は悪いことではない。

どう信用していないかと言えば、まず最初に上げられるのは、無名inner classのメソッド内で参照する外側のローカル変数はfinalとして再代入を許さないことだ。

次が、ラムダ式用に用意されているjava.util.functionの使いにくさ=throws Exceptionが無い定義だ。

これらは、保存されて処理された場合を考慮すれば当然とも言える。

class Foo {
    Consumer<int> callback;
    public void addConsumer(Consumer<int> cb) {
        callback = cb;
    }
    private foofoofoo() {
      callback.accept(bar);
    }

というオブジェクトに対して、仮に、accpetがthrows Exceptionであったなら

try {
    foo.addConsumer(n -> 例外が起きる可能性);
} catch (Exception e) {
    ...
}

と書いてもなんの意味もない。acceptがいついかなるタイミングで呼び出されるかわからない以上、例外をcatchできないからだ。そんな不親切なインターフェイスはありえないので、Consumerのacceptにthrows Exceptionを付けることはできない。当然acceptの中に例外ハンドラを実装すべきだ。

でも、それはConsumerという名前によって明らかにされている。であれば、汎用の関数的インターフェイスとして

public interface Callback {
    void callback(T t) throws Exception;
}

はどうだろうか。callbackという名前は、その呼び出しに対して呼ばれた側からの呼び返しで、コンシューマとは異なり、呼び出し中の呼び返しが保証される場合にのみ使うという規約で問題ない。

が、Javaは開発者を信用しないから、規約を無視して、コールバックという名前の範囲を超えた呼び出しにも利用できてしまうと考える。したがって、捕捉されない例外のスローと成りえる可能性を持つかな?

いや、そうでもない。class Fooの実装で

    private foofoofoo() {
      try {
          callback.accept(bar);
      } catch (Exception e) {
      }
    }

と書かなければエラーとなるからだ。が、こちら側は例外を握り潰すか、上位に伝播させるより他に元の呼び出し側の意図を反映する機会がない。

結局、意図せざる動作をする可能性があるから、Consumer側の実装で例外を処理する必要がある。となるのだろう。

面倒な話だ。


2015-11-25

_ Visual Studio 2015がインストールできているのに、Component Not Foundとかになる件

Administratorでインストールして、普通のユーザーでログオンして起動すると、コンポーネントが見つからないから再インストールしろというエラーになる。しかしもう遅くて再インストール(というか修復インストール)しても変わらない。

理由は、C:\ProgramData\Microsoft\VisualStudio(あるいはその下の14.0)がAdministratorのみのRWXパーミッションにされるため。

Administratorで該当ディレクトリにUserのRXを追加する。

・COMコンポーネントのregsvrとかする時用にAdministratorでインストールしたのが完全裏目で2日つぶれた。

_ Visual Studio 2015はサーベルが長すぎる

usingの使ってないやつが薄いグレーになって、消したほうがいいよんというのはまあ許容範囲(お前が置いたんだろうというのはあるけど)。

しかし、存在しない行を常時表示して、参照しているやつは何件あって、それがどこかというのはものすごく便利ではあるものの、存在しない行だというその一点で、お前はエディターとは呼べない! という不快感がすさまじい。すごく嫌いだ。

というわけで、編集はEmacsを使うということになってしまって面倒だ。

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

_ matarillo [> 存在しない行を常時表示 オプション→テキストエディター→すべての言語→CodeLens のチェックボックスをオフ..]

_ arton [でも、そうすると、あの有意義な情報も消えて戻って来ないじゃん(右クリックとか同時押しとかいろいろ試した)。だから、編..]


2015-11-27

_ ちょっと圏論を歩いてみた

高橋さんの達人出版会 高橋征義の ITエンジニア向けおすすめブックガイドの『圏論の歩き方』の説明がおもしろかったので、つい買って半分読んだ。

多分、残り半分は読まずに、しばらく置いておく。

続けては読まないけど、実におもしろかった。というか無茶苦茶におもしろい。しかもすごく新鮮な読書体験で驚いた。これ、絶対に読んでみるべきだ。とにかくおもしろいから(でも、残り半分はおれは読まないと書いているくらいに、自分にとって、このおもしろさに今、時間を使う価値があるかどうかは別問題だし、それなりの値段もするので、必読とまでは言わないけど、でもおもしろい)。

なんかいい加減なまえがきがあって、はてどういうことだろう? と読み進めると目次があって、さっぱりわからない名前(タングルの圏とかモナドのクライスリ圏だの)が並んでいて、はてどうなることやらとさらに読み進めると、いきなりえらく野放図な座談会になる。座談会は野放図なのだが、飛び交う言葉はくそまじめである。

学際研究の大切さをわかっている人たちの言葉として、圏論は異分野協働のための知のベースとなるというようなことを言い出す。

こういうのはわかる。いかなる問題であろうとも、観察(考察)-仮説-検証(事例発掘)というフレームワークがまずあって、演繹かあるいは帰納か方向は異なれど、論理によって事物を解釈していことは共通であり、そういった思考の方法論が共通基盤として機能する。圏論とは、そういった事物を正しく見るための基盤として、きわめて大きな範囲で物事をとらえて分析するためのフレームワークというようなことなのだな、ととりあえずおれは解釈して先へ進む。

それにしても、出てくる人物がみな京都の地名らしいが、1人西郷という名前がいて、しかも最後に「みんな京都っぽい雅な名前になっているのに、なぜ私だけ実名なんですか?」というセリフまで出てきて、おもしろすぎる。のりが軽いのは結構なことだ。

2章から説明になる。記号がいっぱい出てきて圏とは何か説明しているのだが、読んだ先からおおざっぱに理解はできるし、ここらあたりまでは数式も普通に読める(もっとも次々と忘れてもいくので、他人には説明できるレベルにはならない。概念は掴んだような気がするというレベルである)。同値というのが、えらくおおざっぱな同値で、なるほどカテゴリーの世界ではそういうことなのだな、と数学の正確性とは別に、概念的な理解はだいたいできてくるような気がしてくる。

3章がタングルの圏で、言葉がいちいちタングルだ、イソトピックだと見慣れないので、これまた読んだ先から忘れて行くのだが、これまた数式含めておもしろく読める。

でもQ&Aがあって(各章にある)、座談会の続きののりで(専門家が自分の専門分野での圏論を説明するので、他分野の人と、圏論を知らないということになっている二条という人がいろいろツッコミを入れて、読者の理解を促す仕組みらしい)いろいろツッコミを入れるのを読むと、ああ、おれはまったく読めていないのだな、と理解できて、そこもまたおもしろい。というか、おれは何を読んでいるんだ?

4章になると、プログラムの意味論で、これは普通にわかったつもり。

操作性意味論と、表示的意味論の説明のところで、ぱーと命令型プログラミング言語の展開と、関数型プログラミング言語の展開が開けて、おお、やはりそうだったのかと得心した。関数型プログラミング言語の場合、ソースコードがソースコードのまま展開されていくイメージがあったのだが(逆に命令型の場合は文字通りCPUがレジスターとメモリーとIOデバイスの間を操作していくイメージがあるのだが)、本能的に正しく認識しているっぽいぞ、と感じる。

それはそれとして読んでいて楽しい。

5章のモナドと計算効果もそののりでずいずい読めるのだが、なんだか随分式が面倒になってきてあまり味わえないことに気付く。でもやはりおもしろい。

早い話が電車の中で読んでいてまったく普通に読めるのだ。

6章になると難易度が急にあがる。「具体的な話をゆっくり見てもらおうと思います」とあるので、プログラミングの話のあたりくらいに具体的なのかと思うと、「具体例を見てみましょう。ベキ集合モナド℘に対するクライスリ圏Kℓ(℘)は、対象が集合で、射は(略)です。」……そういえば高橋さんが「だいたい数学者が例に挙げる「具体的な例」というのも「要素が3つしかない群」とかだったりして、いやそれ具体的じゃなくて抽象的ではと思ってしまうわけです。」と書いていたなぁと思い出したりする。

で、Q&Aで二条氏が「完全にポカーン……」と書いているので、まあ、読み返すこともあるかも知れないなぁと、良くわからないまま先へ進むわけだが、ここまでも普通におもしろい。

で7章が「表現を<表現>する話」とメタな書き方をしているので、これまた楽しそうだわいと読みはじめるとマグリットの絵の話がマクラで、まあ普通だと読みはじめたら違った。

なんだこれ?

うんと抽象的なレベルでは書いていることはわかる。リソースからリプレゼンテーションへの変換のためのMIMEタイプが関手というような話らしい(多分、正確性は無くても抽象的な理解としてはこれで良いと思う)。が、まったく理解できない。えらくおもしろいことを言っているのはわかる。おもしろさもわかり、書き手が楽しんでいるのもわかる。しかし、まったく理解ができない。おもしろいので読めるのだが、さっぱり何も頭に入らないのには驚いた。普通、ここまでわからなければ、少しもおもしろくないはずだが、おもしろいんだなぁこれが。

で、次の章へ進むといきなり「第7章、あれは何ですか。失礼を承知で言わせてもらいますけど、あなた、自分の書いたものが他の章の内容と同程度の難易度だと、本気で思ってますか?」と二条氏が、西郷氏を怒鳴りつけている。思わず爆笑したが、おお、さっぱりわからなくても別におかしかないようだと読者の気持ちを穏やかにしてくれる章らしい。

で、座談会のメンバーが出てきて、きちんと解釈しながら読むのもあれば、流し読みで必要になったとき用に脳内のどこかに引っかけとく読み方でも良いとか、いろいろ解説が入って、まあ、そうなるよなぁと納得した。

圏論の歩き方(圏論の歩き方委員会)

奇書だな。

# 思い出したが、P.026の下から7行目はあまりにトートロジーなので、「かつ」の後ろはπrじゃないかなぁ(と自信が持てないところが確実な理解ではないところだ)。


2015-11-28

_ 猪俣の百八燈

川越街道を走っていて、いろいろ気になるものがあるのだが、ついにそのうちの一つの猪俣の百八燈に入り込んだ。

川越街道を東京へ上っていくと寄居の手前あたりに標識が出ていて、右へ矢印が書いてある。

そこで右へ入るといきなり詰んだ。

道は2つに分かれていて、真ん中に「この先行き止まり」と書いてある。

うーん、しばし考えた末、右は急に上に上り、左は比較的ゆるやかだ。ということは右のほうが行き止まりなのだろうと左を選ぶ。

さらに2つに分岐して、右はなんとか工業敷地と書いてあるように見える。であれば左だ。すると急に緑の中になり、そのまま進むと左方向へトの字(の逆なわけだが)に突き出したところがあり、はて? と思いながら進むと右手の土手から突き出した灌木がぐさぐさ車に刺さるがしょうがない。と、いきなり池に出て釣り禁止と書いてある。チェックメイトだ。もう目の前が深そうな池なのだ。

そこで車をトの字までバックさせ(もちろん突き出た灌木に攻撃を喰らいまくる)トの横棒にそのままバックで入り、やっと方向転換して元へ戻るが、はて、どこに百八燈があったのだろうか?――というか、そもそも百八燈ってなんだ?(わからないからこそ来たのだった)

しょうがないので、川越街道すぐの分岐の右を選んだ。すると開けた野原になっていて、先客が2台いる。1台はワゴンで青いプラスティックのテーブルを出してビールを飲みながら歓談中だ。わけがわからん。

そのとき、スマホで調べていた妻が言う。「重要な文化財は文化財でも無形って書いてあるよ。盆踊りみたい」

無形なのか! それじゃ、この広場で盆踊りをするのか。

にしても、その広場が妙なのだ。上って来た道を縦棒として(上)───┬(広場)となっていて、形が妙にいびつだし、盆踊りという雰囲気ではない。

良くみると、看板があるので一応、車を降りて見に行った。

すると、なんかすごく妙なことが書いてある。

平安時代から鎌倉時代にかけて猪俣党の本拠地で、毎年8月15日には、108個の塚に燈を灯す。猪俣党は総出で塚を盛ったり薪を集めたりこの日のために働く(ウルトラ大意)。そして現在に至る。

良くみると、崖っぷちから山の上にかけて、いい加減な間隔で、大きさもまちまちな塚が延々と立ち並んでいる。

なんと異様な光景なんだ。

ちょうどあたりは夕暮れ、このあたりにはあまり民家もなく明かりもほとんどない(除く青いプラスチックテーブルの猪俣党(多分)。

すると、夜、多少の月明りだけでほとんど何も見えない光景が浮かんでくる。人々が集まり、塚に燈を灯していく。すると少し広くなった崖上の広場のぐるりから小山の上のほうまで続く塚に燈がともっただけの風景が見えて来た。

おお、どえらく幻想的ではないか。

平安時代から鎌倉時代(えらく大雑把だな)ということは800年以上、延々とこの小山は人々を集めて燈を灯して来たのだ。時間と空間のパースペクティブだ。

こんなところが日本の、それも東京からただか数10キロの位置に存在していたのか。

(まったく埼玉は秘境の宝庫だ)

と、単に塚がある広場で車が3台、ビールを片手に談笑しているおっさんたちと、良くわからない1台に、奥さんと二人で怪訝な顔をしながら妙な感動にうちふるえるおれがいた。

百八の塚が丘の上まで続いている

(ラクダの背中のこぶみたいなのが上へ向かって並んでいる。今度来たら108あるか数えてみよう)

なんかすごく不思議な光景が想像できたから、来年の8月15日に来てみようか、と奥さんと話していると、奥さんがさらに検索して、8年前から花火大会が併設されるようになったら、近隣から2万人が集まるようになったと書いてあると言った。

どこから2万人も集まるのだ? と謎が謎を呼ぶが、別に花火大会は見たくないなぁと、不思議な日本を見つけた高揚感がしぼむのを感じたが、それでもやはりおもしろかった。


2015-11-29

_ 新国立劇場のトスカ

11/29は新国立劇場のトスカ。

この演出はノルマファンティーニに続いて2回目だが、何度見ても良い。

特に印象的なのは、トスカがスカルピアを殺すところで、手に通行証を持って近づいてきたのに、殺した後、はっと気づき、スカルピアの机のところに通行証を探しに行くところだ。音楽的に時間があくのを埋めるためという意図もないわけではないだろうが、じっくり観察してから情け容赦なく殺すのではなく、どうにもしょうがなくなって近寄って来たところを無我夢中で殺してしまったという解釈だというのが明白になるからだ。演出意図としてトスカを本当に悪意のない芸術家として描いているのだろう。

もうひとつあるのは、最後に聖アンジェロ城から身を投げるとき、しっかりと方向を見定めて地面を睨みつけて飛び降りるのではなく、背中を向けて後ろ向きに落ちて行くところだ(まあ、最後の最後まで密偵とかに話しかけているからという点もあるかも知れないが、強靭な意思による積極的な飛び降りとは見えない)。

トスカのマリア・ホセ・シーリは素晴らしい歌手。スカルピアのロベルト・フロンターリはさすがに坊さん行進曲のところはともかく、轟きわたるスカルピアで圧倒的、カヴァラドッシのホルヘ・デ・レオンは飄々とした感じでこれも良かった。

それにしても、スカルピアの造形は非常に不思議だ。言っていることはドンジョヴァンニとそれほどは違わず(いろいろあるんだから全部食ってみたい)、権力を持って悪意に満ちているところがイヤーゴのような純粋な悪意に比べて下世話で、ジェラールのように理想と妄念で迷うこともいっさいなく、ルーナ伯爵のように恋心があっての話でもない。びっくりするくらい正真正銘の俗物なのだ。この身も蓋もないところが、19世紀もおしまいですなぁということなのかな。


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|

ジェズイットを見習え