Island Life

2012/02/23

ピアノレッスン37回目

  • 基礎。昨日は調子良くてスケールがM=160で弾けたんだけど今日はG♯ minorがM=144でもつっかえる。指が動かないんじゃなくて、頭が回らないというか、スケールがゲシュタルト崩壊してつながりがわからなくなる感じがある。不思議。
  • Bach: Fantasia in C minor。仕上げ。
  • Shostakovich: Prelude and Fugue Op87-7 (A major)。超ゆっくり。
  • Kapustin: Op40-7 家ではM=100まで上がったけど、レッスンではShostakovichに時間かかったので弾くチャンスなし。

Tag: Piano

2012/02/20

127 hours

登場人物ほぼ一人、場面もほぼ一ヶ所、最後どうなるかも(実話で広くニュースになったので) 分かってる、というのをどう映画にするのか興味があってずっと観たかったのだけれど、 かみさんは「痛いの嫌い」だし、子供にはまだ刺激が強すぎるだろうしで、なかなか観るチャンスが… というわけで連休の夜中に一人でこっそりDVD鑑賞。

何というか、良かった。この話から何らかの教訓を引き出そうとすれば出来るのだろうけれど、 言葉で分析しちゃうとこの「良さ」から離れてしまう気がする。 感動というのじゃないんだけど、人間の、生物としての生命力に直に触れた感触とでも言おうか。 (敢えて言うなら、野生生物の厳しい生き様のドキュメンタリーを観るのに 似てるかもしれない…)

もちろん、そう感じさせるフィルムを作り上げた役者も監督もスタッフも素晴らしい。

Canyonlandsには一度だけ行ったことがある。 アメリカに来て始めての休暇を利用して、一人で米国中西部の国立公園めぐりをした。 自転車を車に積んで行って、先々でオフロードサイクリングを楽しんだ。

Canyonlandsで走ったのはさして難しくない30マイル余りのコースだったんだけど、 水の必要量が予想より多くてびびった。 Camel packとボトル一本持ってたんだけど、ものすごい勢いで体表から水分が飛んで ゆく。出発後しばらくして峡谷に降りたあたりから、 水がなくなったらマジでやばい、そして今手持ちの水ではかなり厳しい、ということに気づいた。 以降、何マイル走ったら一口、みたいにして持たせた。 (車に予備のボトルを残しておいたのを途中で後悔したんだけど、映画でも同じ描写があったなあ。) 行程中、コロラド川下りをしているカヌーを見た以外は、他に誰も人を見かけなかった。 一ヶ所、自転車をかついで崖を登るところがあって、 ここで落ちたら助けは来るんだろうかとふと思った。

ああいう旅はもう無理だろうなあとは思うけど、息子にいつかあの 「地球の大きさと人間の小ささ」を見せてやりたいとも思う。

古い地図を引っ張り出して、走ったルートをGoogle mapで辿ってみた。もう15年経つけれど、 衛星写真を見てると走った時の景色をかなり細かく思い出せるのに驚く。 (青いルートが走ったルート、左下のマークがAron Ralstonが遭難したBlue John Canyon)


View Canyonlands in a larger map

Tags: 映画,

2012/02/20

値段の決め方

独立して10年、いまだに価格交渉は苦手だけれど、 これは、だいたい同意。

Left Side Story経由で 『Ameroadが生まれてから売却するまでの五日間まとめ』

値段というのは、商品価値で決めるものではない。買って頂ける人を想定し、その人の財布に合わせて決めるものだと思う。

財布に合わせてというか、まあ最終的には向こうもこっちも「得した」と思えるポイントを 見つけるってことだと思うけど。

自分は子供の頃にどういうわけか「値段というのは、原価と経費に利益を足して決めるものだ」と 思い込んでしまって、ハタチ前後までそのナイーブな誤謬に気づかなかった。 需要供給曲線とか学校でやってるのにね。 でも同じような思い込みをしてる人は珍しくないような気がする。

もちろん式としては 価格=原価+経費+利益 だけど、これは単なる制約を表す式で、 「価格を決める式」ではない。むしろイメージとしては、需要と供給の関係から価格が決まり、 そこから利益が出るように原価や経費を調整する、というのが近い。 現実には制約を満たすように行ったり来たりして均衡状態に落ち着くものなので、 はっきりした向きがあるわけじゃないけど。

買い手も売り手もたくさんいて、材料や労働力もコモディティであるような商品なら、 競争の結果として、「原価と経費にちょっと色をつけて値段を決める」というのが 均衡価格を予測するショートカットになるから、 それをどっかで読んで「これが価格の決め方だ」って勘違いしたのかもしれない。

でも一品ものの受注生産みたいに、買い手や売り手が極めて限定される状況では、 この予測式の前提は成り立たない。

プログラミングだと経費のほとんどは人件費なわけで、それを労働時間に比例させると、 経費+利益積み上げ式では時給とか人月で価格を決めることになる。 それはプログラミングがコモディティであることを前提としてるってことだ。 でもプログラマというのは、一定時間かければ誰でも同じように出来る作業は自動化せずにはおれない 人種なので、「コモディティなプログラマ」は形容矛盾だ。

とはいえ、価格の算定根拠として時給計算とか人月計算を求められることは多いんだけどね。 そういう時は仕方ないから、価格から逆算して時給と労働時間を出してるけど、 できれば総額で話を進めたい。 自分としては時間を切り売りするんじゃなく作ったものを喜んで欲しいし、 お客さんだって欲しいのは「私の時間」ではなく「目的に使えるシステム」なんだから。

Tag: 仕事

2012/02/17

John Nashの暗号器

John Nashが1955年にNSAに送った、暗号アルゴリズムを提案する書簡というのを見た(pdf)。 最初の書簡では、「暗号アルゴリズムにとって重要な性質は、暗号文から鍵を推測するための計算量が、鍵長に対して指数的に増加することである (そして単純な置換暗号はこの性質を満たさない)」という一般的な議論がなされ、 次の書簡でその性質を満たす具体的な暗号器の例が示されている。

(関係ないけど、この書簡は「手書きの文字の綺麗さ/汚さで内容を判断してはいけない」という好例かもしれない。)

NSAの返信は「うちのセキュリティ標準に達してない」というそっけないものだが、 当時のレベルとしてはどんなものだったんだろう。 Nashの示したアルゴリズム自体は現代のコンピュータなら簡単だけど、 当時の技術でどのくらいのものだったのかというのも気になる。 既に真空管式やリレー式のプログラム内蔵式のコンピュータはあったはずだけど。

なんてことを考えてるうちに、何となく試したくなって Nashの暗号器を実装してみた。Gaucheの次のバージョンに入るgeneratorの 例にもなりそうだ。

コードはこちら。実行にはGaucheの開発版HEAD(2fa6baf以降)が必要。

  • make-enciphererとmake-deciphererがそれぞれ暗号化器と復号化器を作る。
  • 暗号の鍵は、P0, P1, R0, R1で指定されるPermuter-Reverser (P/R)ユニットの構成法。 make-permuterが与えられたパラメータからP/Rユニットを作る。例を参照。
  • P/Rユニットは、1ビット入力を受け取り1ビットの出力を返す手続きとして実装される。
  • 暗号化器は平文のビット列のジェネレータを受け取り、暗号化されたビット列のジェネレータを返す。
  • 復号化器は暗号化されたビット列のジェネレータを受け取り、平文のビット列のジェネレータを返す。

実装の本質はここまで。後は文字列をビット列のジェネレータに変換したり、 その逆をやったりするユーティリティ。

ジェネレータを介しているので、パイプをつなげるみたいにして 暗号化器と復号化器をつなげることができる。

($ bools->string $ D $ E $ string->bools "hi, there!")

とやれば文字列をEで暗号化、Dで復号化してすぐ文字列に直してる。

($ write-bools $ D $ E $ port->bools (current-input-port))

とすると、標準入力から読み取ってEで暗号化し、Dで復号化して標準出力に書き出す。

Tags: Programming, Gauche

2012/02/16

ピアノレッスン36回目

  • 基礎。M=152だといくつかの調で左手の下降が均一にならない。また、M=144でF♯minorのスケールに課題あり。
  • Bach: Fantasia in C minor。M=138〜144でさらっていったんだけど、まだミスが多い。ピアノが変わってもその場で対応できるためには、家では余裕を持って弾けてないとだめだな。
  • Kapustin: Op40-7。MM=88で。後半の3度のパッセージはM=92に上げるのに壁がある感じ。楽譜指定はM=126なんだけど、Kapustin本人はM=116前後で弾いてる。一応M=112-116を目標にしよう。

来週もう一回Bachをチャレンジ。あとShostacovichのプレリュードとフーガ、A majorを始める。

Tag: Piano

More entries ...