Island Life

2013/08/17

演技を仕事としてやる場合には、オーディションに金を払ってはいけないとか チケットノルマを受け入れてはいけない、ということをこないだ書いたけど、 アクティングコーチScott Rogersの本を読んでいたら、 なぜオーディションを受けるのに金を払ってはいけないかについて明快な説明が出ていた。

... [It] makes them look desperate - who wants to hire an actor that has to pay to audition?

「金を払いますからどうかオーディションを受けさせてください(とか、出演させてください)」と 頼まなければならないような役者を、誰が雇いたいと思うだろうか、ということだ。

コモディティな商品なら、「安売りしますよ」「おまけをつけますよ」 といった売り込みはむしろ効果的なはずだ。

でも役者というのはその逆で「替えがきかないこと」「その人でなければならないこと」が 重要な価値になる。(代役がありえない、ということではなく、 代役を立てたらアウトプットも別のものになる、ということ)

これは役者に限らない話かもしれない。

Tag: 芝居

2013/08/04

チケットノルマ

興業側が「主演女優が稽古に来ない」と舞台公演を中止したら、実は原作者が舞台化を許可してなかったとか何とかで揉めている話。著作権とか契約については実際のやりとりの詳細がわからないと何とも言えない。道義的には興業側がひどいという印象なんだけど、契約の話はまた別だから。

ただ、件の公演にチケットノルマがあったという話がいくつも出てきているようでびっくりした。さらに舞台関係と思しき人が「舞台でノルマがあるのは普通」とかつぶやいてたりしてもっとびっくり。

もちろん、アマチュア劇団とか自主制作の舞台で、自分たちでファイナンスして公演打ちましょう、という場合は、チケットノルマだろうが参加費徴収だろうが好きなようにやっていい。私も学生劇団でやってた時にはノルマがあった。ノルマがあるってことは、役者が出資者にもなるってことだから、出資者として運営に口を出す権限も得られるってことだ。「自分たちで作る舞台」ならそれでいい。

でも、プロの役者が仕事としてやる場合、チケットノルマはありえない。USでは俳優組合の契約によって明示的に禁止されてることが多い。それどころか公演日数に応じてキャスト・スタッフにただ券 (comp ticket) を支給しないとならないことになってる。 (非組合員でやる舞台の場合はそういう縛りはないけれど、きちんとした劇場ならもちろんノルマ無しでcomp ticketもちゃんとくれる。組合契約と違ってギャラはほんのわずかしか出ないけど。)

仕事、たとえば営業のノルマなんかとどう違うのか、と思う人がいるかもしれないが、 役者は演技をするために雇われたわけで、チケットを売るために雇われたわけじゃない。 役者の「仕事のノルマ」は稽古や本番において発揮されるべきで、 チケットを何枚売るかという心配をすべき人は別にいるわけ。

ノルマを課すと運営側には一定の現金収入が保証されちゃうんで、 インセンティブが歪められる。極端な話、役者だけ集めて放っといても金は入るわけだから。 オーディションを有料にしてはいけない (cf. 有料オーディション) というのと同じ原理。

日本の場合、USほど強力な組合が無いから事情が違うかもしれないけれど、だからこそ役者がみんなで「ノルマがある舞台には出ません(自分が運営側にも参加するのでない限り)」と言わないとだめだと思う。

なお、USの場合、劇場も時間で貸し出して収入を得るのではなく、チケットの売上の一部を取るという形なので、劇場側にもチケットを多く捌いて公演を成功させようというインセンティブがある。 (cf. 舞台公演の開演時間)

(追記2013/08/05 07:57:03 UTC): チケットノルマの話に対する興行側の反論が報道されてた。

「知り合いが"プロなら100人くらい呼ばないとね"と言っていたので、やる気のある人だけで固めたいと思ったから設けた」

「無理しないでいいと私が言っても、やる気を見せようと“500枚売ります”と言う人もいたんだよ」

報道で切り取られた発言だけを取り上げるのはバイアスがかかるかもしれないけど、 間違ったインセンティブのとてもわかりやすい例になってる。 演技に対するコミットメントを求めるべきなのに、 チケットを何枚売るかで熱意を{測る|見せる}人が集まってきている。 両者に相関があるとしても、後者は間接的な指標でしかないのだから、 そんなものに頼らずオーディション等で直接的に評価すればいい。

(追記2013/08/05 18:16:59 UTC): プロとアマの境界なんて曖昧なんじゃないか、という話もあるんだけど、ことチケットノルマに関してはそこそこ明確に線を引けると思う。金銭的な責任を一部でも負担するなら、興業側にその分の立場を持つということ。つまり公演の運営について口を挟める立場になるってことだ。小劇団では実際、劇団員は演技のことだけじゃなくて劇団を回してゆくことも考えないとならないしね。「チケットノルマはある。でも運営には口を挟むな」だったらそれはscam(詐欺、ぺてん)と判断してよい。

Tag: 芝居

2013/08/03

バックドア

LenovoのPCにバックドアが、みたいな話が出てたんだけど、それを言い始めるとコンポーネントを全部国内生産にしないとダメだよなあ。 と、最近Hacker Newsで見たこのハックを見てて思った。

ハードディスクコントローラをリバースエンジニアリングして、Flash ROMを書き換え、 (1)「特定のパターンが読み出されたらそれを置換する」機能と、 (2)「特定のパターンが書き込まれたら(1)を有効にする」機能を実装した話。

こいつが仕込まれたディスクが使われていたら、まず何らかの方法でディスクに特定の パターンを書き込ませて (これはメールを送りつけるとか何かダウンロードさせるとかで 簡単に可能)、そいつによって 例えばパスワードファイルのエントリっぽいデータが呼び出された時にパスワードハッシュを 置換する機能がトリガされるようにしておく、なんてことができる。

信用できない国が増えれば増えるほど、自分で抱え込まなきゃならないことも増える。 結局、平和な状態ってのが経済的にも一番安く済むんだよなあ。 経済の大きな部分ってのは信用の上に成り立ってるから。

Tags: System, Hardware, Computer

2013/07/27

保守的gcとスタック

clearstack

Conservative GC 使ってる時に、スタックにポインタぽいものが残ると、もう使ってなくてもメモリが解放されないみたいな話があって、コンパイラで関数から出る時にポインタを持ちうるメモリをクリアすると良いかなぁと作った clang plugin 。

GaucheでもVM stackにポインタが残る可能性はあって前から気にはなっていた。 ただ、それが問題となる状況を実際に起こすのはかなり難しい。Gaucheの場合、 スタックがある程度以上深くなるとヒープにごそっと移されて各フレームが 回収対象になるので、「スタック溢れが起きない程度で、かつ大部分の関数呼び出しよりも 深い呼び出しの中で大きなデータを指すポインタを作る」って条件が結構厳しい。

ただ、可能性があるのは確かで、思わぬ時に噛みつかれる恐れがあるのは落ち着かない。

リターンするたびに使ったスタック領域をクリアする、というのはオーバヘッドがあるし、 ほとんどの場合その領域は直ちに再利用されるので、無駄が多い。

(一応、昔「VM stackの有効部分だけをmarkする」というコードを入れてみたことはあった のだけど、特に性能に変化は見られなかったので無効にしてある。)

最近考えているのは、 ほとんど起きない事象なら、「ある程度の時間間隔で未使用スタック領域をクリアする (例えばGCのsweep phase 10回につき1回とか)」でもいいんじゃないか、という アイディアだ。 いずれクリアされるものなら、いつまでも回収されないという事態は防げる。

その実装自体は難しくないのだけれど、Gaucheの場合VMがスレッド毎にあり、 プロセス中の全てのVMを知るインタフェースが無いのがちと問題。 GCが走ったスレッドに関してだけクリアすると、 止まったままのスレッドのVMがゴミを掴んでいるケースに対応できない。

Boehm GCの方で全スレッドのリストは把握してるので、全VMを辿ることも 強引にできなくはないんだが…

Tags: Gauche, GC

2013/07/26

実数部が0にならない話

「-2の1.5乗」は純虚数になるはずで、HP 35sでは実際そうなるのだけど、 プログラミング言語処理系では実数部に誤差が乗ってしまう、という話。 Gaucheもそうなる。

gosh> (expt -2 1.5)
-5.195564742431613e-16-2.82842712474619i

(expt x y)は、結果が「明らかに実数」でない場合は次のように計算している。

    x^y == e^{y * log(x)}
        == e^{y * log(|x|)} * e^{y * arg(x) * i}

xが負の実数ならarg(x) = πなので、

    x^y == e^{y*log(-x)} * e^{πyi}
        == e^{y*log(-x)}*cos(πy) + e^{y*log(-x)}*sin(πy)i

y = 1.5の時実部が0にならない理由は、1.5πをdoubleで正確に表現できないから cos(1.5π)が0にならないってことなんだけど、なんかそれもださい気がする。 1.5自体はdoubleで正確に表現できるんだし。

sinpi(x) = sin(x*π) といった関数があれば、 xがキリの良い数(1/2の倍数)の時に正確な値が出せそうだ。 浮動小数点数演算でもsin(0), cos(0)は常に正確なので、 1/2πの倍数が0にくるように入力を適切に変換してやればよい。 そんな感じで作ってみたのがこれ。

gosh> (for-each (^x (print (%sinpi x))) (lrange -2 2.001 1/8))
0.0
0.3826834323650898
0.7071067811865475
0.9238795325112867
1.0
0.9238795325112867
0.7071067811865475
0.3826834323650898
0.0
-0.3826834323650898
-0.7071067811865475
-0.9238795325112867
-1.0
-0.9238795325112867
-0.7071067811865475
-0.3826834323650898
0.0
0.3826834323650898
0.7071067811865475
0.9238795325112867
1.0
0.9238795325112867
0.7071067811865475
0.3826834323650898
0.0
-0.3826834323650898
-0.7071067811865475
-0.9238795325112867
-1.0
-0.9238795325112867
-0.7071067811865475
-0.3826834323650898
0.0
#<undef>

これを使うと実部の誤差はこの通り消える。

gosh> (expt -2 1.5)
0.0-2.82842712474619i

確か以前にもsin(nπ)あたりが綺麗に出ないのに残念な気分に なった覚えがあるんだけど、少なくともGaucheのソースでは 他にsinpiとかが使える場所は無い感じなので、試しに入れてはみたが キープするかどうかは微妙。しばらく様子見。

Tag: Gauche

More entries ...