2015年5月24日日曜日

動物園の入場料比較

子供がいると、休日を何もせずのんびり過ごすというのが不可能になり、何かしないといけなくなる。で、今日は Oakland Zoo に行ってきた。以前に San Francisco Zoo にもいったことがあるので、この辺(SF 及び北東地域)の Zoo は制覇したことになる。


ふと気になって、動物園の入場料について調べてみた。メインの客は小学生だろうと仮定して、大人の入場料と小学生の入園料は以下のとおり。

(日本の動物園のうち、富士サファリパークは私立、他は公立)

日本の公立動物園の入園料の安さは一見して明らかだ。
誰でも入園できるようにという意図なのだろうが、赤字分は税金から補填されているはずで、それは公平な税金の使い方だとは思えない。動物園に行ったこともない納税者も多いだろうに。

そもそも動物園に行くという行動の価格弾力性は低いと思う。メインの客が子供を連れた家族だと仮定するなら、個人的な経験から言うと、入園料よりも例えば移動にかかる時間や移動の手間の方が負担だ。
子連れで(特に東京では普通であろう)電車で移動するのはとても苦痛だ。乗り換えの手間や車内で静かにさせる手間を考えれば、入園料が 600 円だろうが 1,200 円だろうが大して問題ではない。
また、「入園料が 1,200 円なら年 1 回しか行かないけど、600 円なら 2 回行く」というのも考えづらい。だったら 1,200 円に設定した方が良いだろう。受益者負担の原則にも則っている。

まぁ東京都はお金持ちなのでいいとしても、財政危機の横浜のズーラシアは入園料を見直した方が良いのでは・・・。

2015年5月23日土曜日

アメリカで交通事故にあった話(その 2)

MetLife のウェブサイトから事故のレポートをしたところ、約 3 時間後に電話がかかってきた。
簡単に事故の内容を伝えたあと、修理費用を見積もるという話に。「一番簡単な方法は、iPhone アプリで写真を撮ってこっちに送ることね」ということなので、その方法ですすめることに。
MetLife Choice Express というアプリをインストールして起動すると、「オドメーターの写真を撮れ」「故障箇所全体写真を撮れ」「ディテールの写真を 4 枚撮れ」との指示が。そのとおりすると、「24 時間以内に見積もり送るから待っとけ」というメッセージが。
修理の見積もりだって簡単に取れちゃうんです、そうアイフォーンならね。(注:android 用もあります)



2 時間後に notification があり、見積もり完了。これを修理屋に持っていって作業を依頼した。
「どのくらい時間かかるの?」「はっきりとしたことは言えないけど、今見えてる部分の修理だけでよければ、3, 4・・・」「(3, 4 時間か?)」「3, 4 日かな」「3, 4 日!!!」
そんなにかかるのかーーー。レンタカー必要じゃん。それも MetLife に連絡しなきゃ・・・。車の修理って時間かかるんだな・・・。数時間トンカンすれば直せるのかと思ってた。無知って怖いわ。

ちなみに、もし、実際の修理費用がこの見積もりを上回る場合は、修理屋が MetLife と話してくれるそうだ。まぁこれ以上面倒なことにならないよう祈るのみ。

2015年5月22日金曜日

アメリカで交通事故にあった話(その 1)

ベイエリアは公共交通機関が比較的発達している、とはいっても所詮アメリカなので、車を運転する機会が多いのですが、ついに昨日(軽い)交通事故に巻き込まれました。日米通算で初事故。私の過失ではありませんが。

この辺りで信号待ちで止まってたら、急に「ドン」という衝撃が。バックミラーには、「やっちゃた・・・」という顔の後続車のドライバーが映ってました。

「保険会社とかと話さないといけないのか。めんどくさー」と思いつつ、車をおりると、向こうのドライバーも降りてきた。
"Hey. are you ok? I'm so sorry."
えー「事故を起こした時に "I'm sorry" というと自分の責任を認めたことになるので、言ってはいけない。全部保険会社に任せること」が私の中での「アメリカでの交通事故」の常識だったのですが、ふつうに "I'm sorry" と言ってましたね。(後で調べたところ、California や Massachusetts には「"I'm sorry" は法廷での証拠として使えない」という法律があるみたい)
こういう "I'm sorry" には何て答えればいいんですかね? 普通なら "it's ok" とか "no problem" とか言うんだけど、この状況では明らかに使えないし・・・。

と困っていると、相手は事故慣れ (?) してるようで「免許証と自動車保険証ある? 交換しましょう」と促されるままに、免許証と保険証の写真を携帯で取り合う。
「事故初めてだから、どうして良いかわからないんだよね」と素直に伝えると「保険会社に連絡しても良いんだけど、保険使うとプレミアムが上がるかもしれないから、私が直接払っても良いよ。これは完全に私が悪いし。あと証拠にお互いの車の傷の写真を撮っておきましょう」と、やけに手際の良い相手。
車は軽傷だったし、プリスクールの迎えで急いでたので、「どうするかまだ決めてないけど、決めたらまずあなたに連絡するよ。連絡先教えて」とメールアドレスを交換して、その場は終わり。

振り返ってみると、写真撮るだけではどちらの責任かわからないし、今は「私が悪い」って言ってるけど、あとで態度変えられたら泣き寝入りのケースですね。会話を携帯で録音するべきだったけど、事故の直後はそこまで頭が回らなかった・・・。

今調べたところ、車後部の衝突 "rear-end collision" は "No-doubt liability" に該当し、大抵のケースでは後ろからぶつかった側の責任になるみたい。"A basic rule of the road requires a vehicle to be able to stop safely if traffic is stopped ahead of it." 「基本的には、前の車がいかなる理由で止まっても、安全に停止できなければならない」

あと「California では、軽微な事故で警察呼んでも来てくれない」という情報もあったんだけど、本当かな? 財政難だから? 複雑なケースだったら事実認定は誰がするんだろうか?

翌日(今日)近くの修理屋に行って車を見せて「こういう事故で、こういうダメージがあって、相手は直接払うって言ってるんだけど、どうかな?」と聞いてみた。
親切なお兄さんによれば、「保険会社に連絡したほうが良いよ。小さなダメージに見えるけど、マフラーがすこし曲がってるし、内部にも損傷があるかも。保険はどこ? MetLife と XXX だったら、MetLife の方が対応が良いから、オレならそっちに連絡するね。」とのことだったので、MetLife のウェブサイトの "file a claim" で事故を報告したところ。

ああー、やっぱりめんどくさい・・・。(続く

2015年5月21日木曜日

日本人におすすめの店 in Berkeley

Berkeley に引っ越してもうすぐ 1 年が経つ。日本人的には、Berkeley というと UC Berkeley が有名だが、私が住んでるのは North Berkeley と呼ばれるところで、UC Berkeley から車で 20 分ぐらい北西に行ったところ。Albany という町との境目に近い。Albany は日本では聞いたこともない小さな町だが、学区が良くて、不動産も高い。

San Francisco からの引っ越し先を探していた 1 年前、たまたま Albany の Marin Avenue を通ったときに、街並みが気に入ってこの辺に住むことに決めた。
引っ越してから気がついたが、日本人向けの店が多くて住みやすい。
ということで、まとめてみた。

North Berkeley 周辺の地図。自宅は中央のモザイクがかかってるエリア :)

Monterey Market
うちから歩いて 3 分のところにある grocery store。創業者が日本人だそうで、外壁にデカデカと家紋がついてる。安い。日本野菜(大根とか)も売ってる。

Tokyo Fish Market
これも grocery store。Tokyo という名前の通り、日本の野菜、お菓子、冷凍食品が売ってる。fish market というだけあって(日本ほどじゃないが)魚介類が多い。

Yaoya-San
「八百屋さん」という名前だけど、肉も乳製品もお菓子も売ってる普通の grocery store。
San Francisco 周辺で最も「日本のケーキ」っぽい Patisserie Norina のケーキが買えるのイーストベイではここだけ。毎週火曜日と土曜日。

Berkeley Bowl
大きな grocer store。どういう関係か知らないが、ここも日本野菜、冷凍食品が売ってる。他ではなかなか見つからない大豆の水煮缶も売ってる。

Whole Foods Market
みんな大好き Whole Foods。品質も値段も高い。ここに入ってるパン屋のブリオッシュがとても美味しい。

Kiku Sushi
寿司屋。今日初めて行ったら、美味しくてびっくりした。青魚もあります。5 月だから鯉のぼりが飾ってあった。

Ippuku
焼き鳥屋(日によってそば屋)。焼き鳥は普通に日本の焼き鳥。「ぼんじり」などもある。そばは食べたことがないけど期待できる。

Iyasare
おしゃれな日本食や。なんでも美味しい。ラーメンも美味しい。うな丼もあるので、いつか試してみたい。

Kirala
レストランと togo 専門店とがある。togo しかしたことないけど、カツ丼とか天丼がある。日本のコンビニぐらいの味。手っ取り早く日本の味が食べたくなったときに。

Kim's Cafe & Sandwich
ベトナムサンドイッチや。安くて美味しい。東南アジア系の店はハズレが少ない(= 日本人の味覚に合うことが多い)気がする。

Pedro's Brazil Cafe
ブラジルサンドイッチ(というジャンルがあるのか知らないが)や。タコスやブリトーの皮をパンに変えた感じ (?)。美味しい。

Zachary's Chicago Pizza
"deep dish" スタイルのピザ。「美味しんぼ」で見たときから一度食べてみたいと思ってて、ようやくここで食べれた。ものすごい量のソースが入ってるけど、しつこくなくて美味しく食べられる。

Gioia Pizzeria
もう一つのピザや。こっちは「一切れ $2」とかで買えるアメリカンスタイル。美味しい。

Philz Coffee
有名コーヒー屋。いつも「今月のおすすめコーヒー豆」を買ってる。ここのコーヒーは(新鮮な豆で淹れると)ちゃんと「豆」の香りがする。

Happy Donuts
よくあるドーナツやと思いきや、他のドーナツ屋(例えば T 社のとなりのとなりにあるドーナツ屋)より確実に美味しい。Krispy Kreme Donuts の方が好きだけど、こっちの方が安い(し、Krispy Kreme Donuts は近くにない)。


Berkeley にお越しの際は、食をご堪能ください。

2015年5月20日水曜日

経済的弱者と自己責任論と経済格差

なぜ若者は遣い潰されるのか -- 日本のアニメはブラック業界」を読んだ。多くのアニメーション製作者が、社員ではなく個人事業主であるとは知らなかった。社員であれば(雇用されていれば)最低賃金や労働時間などについて労働法で保護されるが、個人事業主には適用されないため合法かつブラックな状況にあるようだ。

社会に出たての若者に「君たちは労働者ではなく個人事業主である」と刷り込んで、ひどい環境に追い込むのはもちろん(違法ではないにしろ)ブラックだが、それは根本的な問題ではない。社員になるか個人事業主になるかは自由な選択であるべきだし、そもそもブラックな環境からは人が減るべきで、人を採用するために環境がホワイトになっていく、というのがあるべき姿だ。
であるのに、この環境が改善されない原因は 3 つあると思う。

流動性のない労働市場

今更書くこともないが、転職が一般的でない状況では、「アニメ業界はブラックだから転職しよう」という意識が生まれない。生まれたとしても受け入れる業界がない。アニメ業界でしばらく働いて「この業界はやばい」と気がついたときには、もう逃げ道がなくなっている。

「好きなことを仕事にしよう」 教

よく似た宗派に「お金のために働くのは悪だ」教がある。これを布教してるのは、「好きなことを仕事にして」成功した(またはそれなりに暮らせている)人である。これで幸せになれる人は限られている。
まず、「ユーザー・顧客として好きなこと」と「働くのが好きな業界」とは異なるのが普通だ。「アニメが好き」だからといって「アニメ業界で働くのが好き」ということにはならない。現にそうではない人が多いから問題になっているわけで。
私はゲームが好きだが、ゲーム業界で働くのが楽しいとは思えないし、読書(オンラインのも含めて)が好きだが、執筆者・編集者になろうとは思わない。(自分では)稼げなさそうだからだ。優れたゲームデザイナーになれるとも思えないし、出版業界はそれ自体が斜陽産業に見える。

そうではなくて「お金を稼げる仕事をしよう」と言うべきだ。「社会に貢献できる仕事をしよう」と言い換えてもいい。資本主義社会では基本的に同じことだけど。

この教えを信じた人がアニメ業界に吸い込まれて、気付いた時にはもう手遅れなのだとしたら、救いのない話しだ。
などと書いている私も、学生時代に深く考えることなく、好きなこと(プログラミング)を仕事にした。今それなりに豊かな生活が送れているのは単に幸運だったからだと言える。

経済的弱者への厳しさ

もとの記事でも触れているが、こういう状況に対して「それは自己責任だから」という反論が考えられる。アニメ業界に就職したのはたしかに自分の選択の結果だが、最初の就職先がブラックで、転職も難しい状況で、それを自己責任で片付けるのは厳しすぎる。政府の警告を無視して紛争地帯に行って捕虜になるのとは話が違う。

たいした根拠のない主観だが、この「弱者に対する厳しさ」は、強者と弱者との差が小さいからではないかと思う。弱者と自分との差が大きくなければ、例えば年収 300 万円と 200 万円なら、「おれは努力してるから 300 万円を稼げるんだ。あいつらも努力すればできるはずだ。援助は不要だ」という考えに至ってもおかしくない(気がする)。これが年収 2000 万円と 200 万円なら「200 万円で生活してる可哀想な人たちのために何かできることがあるはず」という憐憫の情になり、自己責任を持ち出したりしないのではないか。

先日、職場のメーリングリストにこんなメールが流れた「オフィスの前の通りにいつも座ってるホームレスは、今日が誕生日なんだって。みんなでケーキを買ってプレゼントしない?」このスレッドはかなり長くなり、結局何人かがケーキを買って写真を取っていた。
正直言って、このメールをみたときに違和感を覚えた。今日ケーキを買ったところで彼の生活は何も変わらないし、彼がホームレスをしている原因の一つが、われわれソフトウェアエンジニアの高給と、それによる San Francisco の物価高騰であることは間違いないだろう。
しかし、平均年収約 $130,000 のソフトウェアエンジニアは、多分 $10,000 もないだろうホームレスに「自己責任」は求めないし、(どの程度の覚悟があるのかはわからないが)「助けてあげたい」と思っているようだ。

若干(かなり?)こじつけ感のある話だが、ようするに「もっと格差が大きくなれば、『自己責任論』を持ち出す人は減るのでは?」と思ったのだった。でもそうなる前になんとかしないといけないんだけどね。(Wikipedia にあった国別ジニ係数の推移。 )
経済格差を示すジニ係数。日本は上昇中で 0.28 @ 2005。アメリカは 0.4 に近い。


2015年5月19日火曜日

Raft: もう一つの consensus algorithm

Paxos について調べていたら、Raft という別の Consensus Algorithm にたどり着いた。Raft は「理解しやすさ」を重視して設計したそうで、Paxos について
Paxos is exceptionally difficult to understand. The full explanation [15] is notoriously opaque; few people succeed in understanding it, and only with great effort.
Paxos を理解することは並外れて難しい。正確な説明は極めて不可解で、ほとんどの人は理解できない。できるとしてもものすごい努力を要する。
と批判している。「よく分からん」 と思ったのは私だけではないようだ。

また、Chubby の実装者のコメントを引用している。
There are significant gaps between the description of the Paxos algorithm and the needs of a real-world system. . . . the final system will be based on an unproven protocol [4].
Paxos アルゴリズムの記述と実世界のシステムとの間には 大きなギャップがあり、最終的に構築したシステムは、証明されていないプロトコルに基づくことになった。
たしかに、Paxos の論文は数学的なので、そのまま実装できるものではなかった。

で、Raft の論文を読むと、これがとてもわかりやすい。まずプロトコルを説明して、それから safety を証明する、という computer science の人に優しい構成になっている。一読して理解できたので、Paxos のように「解説の解説」を書く必要がない。

面白かったのは、「Raft は Paxos より理解しやすい」ことを実証するために、Stanford と UC Berkeley の学生に、解説ビデオを見せ、その後にテストを行い結果を比較したということ。当然 Raft のほうが成績がよかったそうだ。まあそうだろうな。

2015年5月18日月曜日

Paxos の解説の解説(その 4)

前回 proposer の振る舞いは説明したので、次は acceptor の説明。

"prepare" request と "accept" request のどちらについても、acceptor は自由に無視できる。無視してもアルゴリズムが誤動作することはない。
"prepare" request を無視すると、proposer は(前回説明した)集合 S を作れなくなり、その提案は破棄される。つまり、合意を取るのが遅れることになるが、誤った値が選択されることはない。
"accept" request を何人かの acceptor が無視し、半数未満の acceptor だけが受理したとする。すると、「値 v がいくつかの acceptor によって受理されるが、全体としては選択していない(合意していない)」という状況が生まれる。これは問題だろうか?
当然ながらこの提案は「選択」されない。ではどういう影響があるかというと、この提案が現時点で最大の proposal number を持つので、次の "prepare" request のときに、値 v が proposer に返される。そして、ペアとなる "accept" request で過半数の acceptor が v を受理することになる。もしかしたら、いくつかの acceptor が "accept" request をまた無視するかもしれないが、何ラウンドか繰り返すことで、いつかは過半数を達成するだろう。なので、これは問題なさそうだ。

(これは私の理解であって、解説には書いてないが)結局 Paxos プロトコルは proposer が acceptor を「説得」していく手続きだと思う。proposer の競合やネットワーク障害によって、1 ラウンドの "prepare"/"accept" request では合意に達しないことがある。そのときは、次の "prepare" request が「最も最近発行された(が合意に達しなかった)値を再提案し、より多くの acceptor に受理させる。」そうすれば、いずれ過半数の acceptor が受理し、合意に達するだろう、というのがポイントだ。
もちろんこのプロトコルが停止することは保証されてなくて、それは解説でも触れられている。2 つの proposer が "prepare"/"accept" を順番に発行すると、いつまでも合意に達しない。(「停止性」を保証した改良版 Paxos もあるらしい)

話を元に戻すと、acceptor はリクエストを自由に無視できる。逆に無視しなくてはいけないリクエストがある。proposal number N の "prepare" に応答したらそれ以降は、proposal number が N より小さいリクエストは「無視しなくてはいけない」。それ以外の場合は受理して良い。
直感的には、"prepare" request とは、proposal number N 未満の世界において過半数の acceptor の集合を確認する操作なので、これを応答した後に、N より小さいリクエストによって状態を変えてはいけない、ということになる。

これを acceptor への条件として要請する。
P1a. acceptor は、proposal number N より大きい "prepare" request を受け付けてないとき、そのときのみ、 proposal number N のリクエストを受理する。
これは「P1. acceptor は最初に受け取った提案を必ず受理する」より厳しい条件である。

この条件によって、acceptor が proposal number N の "prepare" request にすでに応答している場合は、N 未満の "prepare" request は無視して良い、という最適化が可能になる。というのは、仮に "prepare" request M (M < N) に応答したとしても、ペアとなる "accept" request は無視しなくてはならないからだ。(なので、"prepare" request に応答する意味がない)


以上で、最初のエントリの最後に書いたプロトコルで、正しく合意が取れることがわかった。