2009年1月17日土曜日

飛行機救出作戦

うまくいきますように



8時間前の様子


2009年1月2日金曜日

アイスコーヒー讃歌

アイスコーヒーが好きだ。朝起きて2杯、午前中に1杯、おやつに1杯、寝る前に1杯。書き出してみるとたった5杯しか飲んでないのかとも思うがとにかくアイスコーヒーが好きだ。

朝のコーヒーは濃く入れる。いつもブラックだが朝の1杯目はミルク入りだ。

社会人になったころはアイスコーヒーが世界の中心だと思っていた。外国ではアイスコーヒーが一般的ではないと知らず、世界中の喫茶店でアイスコーヒーを注文した。拒否されたり怪訝な顔をされたり苦笑されたりして世間がいやになった。

飛行機に乗って飲み物の希望を聞かれたときも必ずアイスコーヒーを頼んだものだった。大人になった現在はアイスコーヒーを出す航空会社はほとんどないことを知っているけれど、私は若かった。

典型的な反応は英国ブリティッシュ・エアウェイズ。「ハア? アイスコーヒー? ありません!」とスチュワーデスに怒り気味に言われた。ちなみにアイスティーもなかった。アメリカン航空だったか、米系の会社は優しかった。「アイスコーヒーはメニューにはありませんが、やってみます」氷の足りない水で薄めたようなコーヒーが出てきたけれど。

ドイツのルフトハンザも同様、「がんばってみます」と言ったスチュワーデスはぬるいコーヒーの上にホイップクリームの乗ったものを持ってきた。ホイップクリームをコーヒーに乗せることよりも、飛行機の厨房にホイップクリームがあるのに驚いた。苦く入れたアイスコーヒーにコンデンスミルクを入れるのはマレーシア航空。所変われば品変わるということを学ぶのが人間の成長というものである。

世界のどこに行ってもアイスコーヒーが飲みたくなるほど好きだ。さんざん学習したためもう日本人のスチュワーデス相手にしかアイスコーヒーを頼まないが、とにかくアイスコーヒーが好きだ。

アメリカに引っ越す前はもうアイスコーヒーが飲めなくなるのかと思っていたが、喜ばしいことにスターバックスがアメリカでもアイスコーヒーを出すようになったため、アメリカでの認知度は高い。普通の喫茶店ではレギュラーコーヒーに氷を大量に入れてアイスコーヒーを作るので薄いぼんやりした味であることが多いが、アイスコーヒーには違いない。

ところがわれらがスターバックスは違う。Iced Caffè Americanoというアイスコーヒーはちゃんとエスプレッソに氷を入れて作るため薄くない。

スターバックスの難点をあげるとすれば豆の味だ。悪くない味なのだが一日何度も飲むには飽きる味だ。さらに、濃いめに作られるため大量にがぶがぶ飲むには向かない。いつでもスターバックスに行ける身分でもない。

アイスコーヒーが好きだ。複数の豆を使い分けて好きなように自宅で飲むのが一番好きだ。

昨年買ったものの中で一番良かったものがサエコ社のエスプレッソコーヒーマシン。目玉が飛び出るくらい高いがおいしいアイスコーヒーのためにはやむを得ない。アイスコーヒー好き・エスプレッソ好きにこの機械はかなりおすすめだ。ただ日本で買うとなぜかアメリカ価格の倍以上するので話半分でどうぞ。

以上、2008年の総括でした。アイスコーヒーはおいしい。

参考リンク

2008年12月28日日曜日

そういう風に見えますか

アマゾンから届いた大量の段ボール箱をゴミ捨て場に運んでいたときのこと。

「ちょっとあなた、うちのゴミも捨てておいてくれない?」

同じ階に住む白人女性に声をかけられた。初めて見る顔だが、苦労を知らずに育ったお嬢様という雰囲気である。それがゴミを運べとおっしゃる。

お嬢様というものは初対面の隣人だろうと遠慮なくこき使うものらしい。むっとしたが、聖書には「隣人を愛せよ」とある。レディーファーストの国アメリカに住んでいるのだから仕方がない。いいですよ、と答えて隣人の敷居をまたいだ。

家具でも買ったのだろうか、大人が3人は入りそうな梱包材が部屋の入り口に放置されていた。ゴミ捨て場まで5往復で足りるかどうかという量だ。軽そうな紙束が大量にあったのでそれから取りかかる。隣人の彼女はといえば、手伝いもせずに靴のカタログを眺めている。当方はまたむっとする。

特大の段ボール箱を部屋から運び出そうとすると、彼女が一言。

「廊下に傷をつけると困るから箱をつぶしてから出してね」

なんの因果で師走の一日をこういうことに費やさねばならぬのだろうか。レディーファースト、レディーファーストと自分に言い聞かせながら黙々と作業をする私。箱を分解するのに工具があれば助かるんですけど、と言ったら

「そんなものないわ」

と一蹴。No such thingですかそうですか。自分の部屋に取りに帰ってまた作業続行。手が痛い。

30分以上かけてお嬢様のゴミをすべて運び出して差し上げた。この彼女、一度も手伝わないものだから気分がかなりブルーになり、すごすごと帰ろうとしたそのとき、

「これ持って行って」

なぜか10ドル札を手渡された。ああ、この人、勘違いしているな、とわかったのはこのときだ。私はただの隣人ですからチップは不要ですよ。彼女にそう伝えた。

「ええっ! アパートメントの掃除夫の人だと思っていました。ごめんなさい。私の名前はA子。あなたは?」

さっきまでの仏頂面からはうってかわり、いきなりフレンドリーになった。だからといって私の心の傷が癒えるわけではない。

◇ ◇ ◇

こういう話もある。

お手製の弁当を袋に入れて仕事場に向かっていると、

「ちょっと、メニューもらえる?」

と言われた。意味がわからずぽかんとしていると

「ランチのデリバリーの人じゃないの?」

いえ、これは私のお弁当ですと言うとその人はお詫びをしつつ去って行った。ちなみに自宅の近所で弁当屋に間違えられたことは3回もある。

◇ ◇ ◇

職業に貴賤はないというしこういうことを言うのは気が引けるが、掃除夫とか弁当屋とかそういった職業の人に間違われることが多いのである。日本にいたときはこんなことはなかった。私の顔がそういうふうにできているのか、それともなにか人種差別的な何かなのだろうか。

2008年11月26日水曜日

日本人のビザは出せません

ニューヨークには外国人差別がない、と言い切ったら過言というものだが、病院や図書館など公共の場所で国籍を問題にされることはない。ここアメリカで外国人として生きていくには居心地の良い都市である。居心地が良すぎて自分が外国人であることを忘れそうになるが、足元をすくわれることもある。

それは中東と西アジアに行く準備をしたときのことだった。

中東A国の場合

石油資本のおかげで建設ラッシュのA国。観光にも力を入れていて、日本人は入国の際にビザがいらない。ネットを見ても日本人の観光旅行記がたくさんみつかる。しかしガイドブックには「ビザの件は流動的なので大使館に確認すること」とも書いてある。

そういうわけで、念のためにA国の出先機関に問い合わせてみた。ところが「日本人だからビザはいらないですよね?」というだけの要件のはずが長電話になってしまった。

A国の係員「アメリカに住んでますか?」

日本のパスポートを持ち米国ビザでアメリカに滞在しています、と説明。滞在年数を聞かれた後、

A国「あなたは日本のパスポートを持っていても状況が若干特殊なのでビザを取ったほうがいいでしょう」

ではすみませんがビザの手続方法を教えてもらえますか。

A国「いえ、ここでは日本人用のビザは出せません」

なんと。

A国「現地の空港に到着したときに到着ビザを取ってください。A国人の書いた招聘状が必要になりますから滞在先のホテルにあらかじめ書いてもらって、それを入国係官に提出してください」

……。

結局面倒になり、A国に行くのはやめてしまった。

西アジアB国の場合

西アジアのB国。発展を続けてはいるものの、他の西アジアの国と同じく観光の目的地としては一般的でない。日本人がB国に入国するにはビザが必要である。ビザの有効期間は数か月から10年まであるが、今回は5年のビザを申し込んでみた。

ビザを申し込みしてから数日、ビザの手配を頼んだ旅行社から電話がかかってきた。

旅行社「5年のビザは無理ですねー」

特に制限はなかったはずだが、と思っていると

旅行社「あなたの場合アメリカに住んでいる日本人なので、通常のアメリカ人や日本人に比べて制限が厳しくなります」

ううむ、ここでもか。

旅行社「1年ビザなら出ますので、また必要になったらビザを取り直してください」

注釈

蛇足ながら真面目な話を書いておくと、上記の話は理由のないことではない。

A国のように、ビザ申請者(私)が国籍のない国(アメリカ)でビザを取得できないのは特別なことではない。在アメリカA国領事の仕事はアメリカ人の入国資格を審査してビザを発給することであり、日本人は審査不可能と言われても仕方がないのだ。日本にあるA国大使館に行ってください、と言われないだけまだましというものである。B国も同様で、期間が短縮されたもののビザを発給してくれたのには感謝するべきだと思う。

それにしても、自分が外国人であることを認識したのはひさしぶりだった。

2008年11月23日日曜日

Perl 6超入門(その3)Perl 5との基本的な違い

Perl Seminar NYという集まりでPerl 6の文法をおさらいした。会場で習ってきたことをインストールしたてのPerl 6を使って自分で試してみる。

まずはバージョン表示

% ./perl6 -v
This is Rakudo Perl 6, revision 0 built on parrot 0.8.1
for darwin-thread-multi-2level.

Copyright 2006-2008, The Perl Foundation.

%

文字列連結

Perl 5の「.」は「~」になった。メソッド呼び出しが「obj->method()」から「obj.method()」になったため。

Perl 5

my $x = 'a';
my $y = 'b';
print $x . $y; # abを表示

Perl 6

my $x = 'a';
my $y = 'b';
say $x ~ $y;

三項演算子(条件演算子)

「条件 ? 正の場合の値 : 偽の場合の値」という書き方はCからの伝統だったが、「条件 ?? 正の場合 !! 偽の場合」になった。

Perl 5

my $x = 1;
print $x == 1 ? 'yes' : 'no'; # yesを表示

Perl 6

my $x = 1;
say $x == 1 ?? 'yes' !! 'no';

配列に対するx演算子はxx

Perl 6

my @array = (1, 2, 3);
my @longarray = @array xx 3;
say join',', @longarray; # 1,2,3,1,2,3,1,2,3を表示

ジャンクション

Perl 6

「3」は「1または2または3」にマッチするので「yes」を表示する。

if (3 == (1 | 2 | 3)) {
say "yes";
}
else {
say "no";
}

「1かつ2かつ3」にはマッチしないので「no」を表示する。

if (3 == (1 & 2 & 3)) {
say "yes";
}
else {
say "no";
}

その他

エラーメッセージが(まだ)不親切。セミナーの会場でもエラーメッセージがわからずにみんなではまった。

たとえば、これを見せられて「=」ではなくて「==」にしなければいけないんだな、とわかるのは無理だ。ドキュメントの整備はこれから行われるとのこと。

% ./perl6 -e 'say "yes" if 3 = (1|2|3)'   
Method 'lvalue' not found for invocant of class 'PAST;Val'
current instr.: 'parrot;PAST;Compiler;as_post' pc 2924 (src/PAST/Compiler.pir:742)
called from Sub 'parrot;PAST;Compiler;if' pc 3461 (src/PAST/Compiler.pir:934)
called from Sub 'parrot;PAST;Compiler;post_children' pc 1783 (src/PAST/Compiler.pir:368)
called from Sub 'parrot;PAST;Compiler;as_post' pc 2060 (src/PAST/Compiler.pir:500)
called from Sub 'parrot;PAST;Compiler;post_children' pc 1783 (src/PAST/Compiler.pir:368)
called from Sub 'parrot;PAST;Compiler;pirop' pc 3061 (src/PAST/Compiler.pir:796)
called from Sub 'parrot;PAST;Compiler;post_children' pc 1783 (src/PAST/Compiler.pir:368)
called from Sub 'parrot;PAST;Compiler;as_post' pc 2408 (src/PAST/Compiler.pir:614)
called from Sub 'parrot;PCT;HLLCompiler;compile' pc 434 (src/PCT/HLLCompiler.pir:303)
called from Sub 'parrot;PCT;HLLCompiler;eval' pc 868 (src/PCT/HLLCompiler.pir:502)
called from Sub 'parrot;PCT;HLLCompiler;command_line' pc 1450 (src/PCT/HLLCompiler.pir:774)
called from Sub 'parrot;Perl6;Compiler;main' pc 16140 (perl6.pir:168)
%

関連記事

2008年11月22日土曜日

Perl 6(Rakudo Perl)をインストール

Perl 6の実装は複数あり、PugsRakudo Perlが有名である。今回は手もとのLeopardでRakudoを試してみる。

ダウンロード

CPANで最新版のParrotをダウンロードする。MacportsにもParrotはあるが、月一度のリリースに追いついていないのでCPANを使ったほうがよいようだ。

展開

% tar zxvf parrot-0.8.1.tar.gz 
parrot-0.8.1/CREDITS
parrot-0.8.1/ChangeLog
parrot-0.8.1/Configure.pl
parrot-0.8.1/DEPRECATED.pod
parrot-0.8.1/DONORS.pod
parrot-0.8.1/LICENSE
parrot-0.8.1/MANIFEST
parrot-0.8.1/MANIFEST.SKIP
parrot-0.8.1/MANIFEST.generated
parrot-0.8.1/META.yml
parrot-0.8.1/Makefile.PL
parrot-0.8.1/NEWS
parrot-0.8.1/PBC_COMPAT
parrot-0.8.1/PLATFORMS
(略)
parrot-0.8.1/tools/util/templates.json
parrot-0.8.1/tools/util/update_copyright.pl
parrot-0.8.1/xconf/samples/testfoobar
parrot-0.8.1/xconf/samples/yourfoobar
%

コンパイル

LeopardだとXcodeが必要。

% cd parrot-0.8.1
% perl Configure.pl
Parrot Version 0.8.1 Configure 2.0
Copyright (C) 2001-2008, The Perl Foundation.

Hello, I'm Configure. My job is to poke and prod your system to figure out
how to build Parrot. The process is completely automated, unless you passed in
the `--ask' flag on the command line, in which case I'll prompt you for a few
pieces of info.
(略)
Okay, we're done!

You can now use `make' to build your Parrot.
After that, you can use `make test' to run the test suite.

Happy Hacking,
The Parrot Team
%
% make
Compiling with:
xx.c
(略)
-L/Users/mint/tmp/parrot-0.8.1/blib/lib -L/Users/mint/tmp/parrot-0.8.1/blib/lib -lparrot -lm -lgmp -lreadline -framework OpenGL -framework GLUT -lcrypto -lintl -undefined dynamic_lookup -L/opt/local/lib
%
% make test
Compiling with:
xx.c
(略)
Test Summary Report
-------------------
t/stm/runtime.t (Wstat: 256 Tests: 5 Failed: 1)
Failed test: 4
Non-zero exit status: 1
Files=396, Tests=11657, 367 wallclock secs ( 3.43 usr 2.24 sys + 169.59 cusr 70.23 csys = 245.49 CPU)
Result: FAIL
make: *** [test] Error 1
%

失敗するテストもあるが気にしない。

% ./parrot -V
This is parrot version 0.8.1 built for nojit.
Copyright (C) 2001-2008, The Perl Foundation.

This code is distributed under the terms of the Artistic License 2.0.
For more details, see the full text of the license in the LICENSE file
included in the Parrot source tree.

%

コンパイル完了。実行可能なParrotのバイナリができる。

Perl 6をビルドするのは簡単で

% make perl6
make -C compilers/pct
make[1]: Nothing to be done for `all'.
(略)
perl -MExtUtils::Command -e cp languages/perl6/perl6 ./perl6
perl -MExtUtils::Command -e ExtUtils::Command::chmod 0755 ./perl6
./perl6 -e"say 'Hello, world.'"
Hello, world.
%

こうするとperl 6のバイナリもできる。最後のところで「Hello, world」を実際にPerl 6で実行している。

「make reallyinstall」をすると/usr/localにParrotがインストールされる(perl6は自動でインストールされない)が、遊んでみるだけなら自分の作業ディレクトリで十分である。

関連記事

2008年11月19日水曜日

iPhoneの修理代金は199ドル

前に書いたとおり、昨年に399ドルで買った旧型iPhoneがこわれた。そこで、修理見積もりをしてもらいにアップルストアに行ってきた。新しくて好きなWest 14th Street店である。

日本のアップルストアと同様Genius Barというシステムがあって、ジーニアスという係の人がトラブルの相談に乗ってくれる。午前中にでも行かない限り予約はまず必須なので、オンラインで予約する。

予約の当日。指定の時間に5分だけ遅れて到着したら20分待たされた。何たる仕打ちかと思ったけれど、iMacがたくさん展示されているし(子供がゲームで遊んでいた)、壁の大画面にOS Xの便利な使い方のビデオが流されているのでMac初心者の私は退屈しない。「mp3が1曲だけ音量が大きく聞こえる。そういうときはiTunesで補正しよう」ふむふむ。そうこうするうちに係の人と面談。30代ラテン系男子。毛深い。

私「iPhoneのマナースイッチがこわれたみたいなんですけど」
係「接触が悪くなってますね」
私「保証期間が切れてるんですけど、修理代はいくらですか」
係「199ドル+税金です」
私「部品を交換するんですか」
係「内部の部品はそのままにして、液晶ガラスを含め外側を全部交換です」
私「考えてみます」

399ドルで買ったiPhone。199ドルで見た目が新しくなるのならお得のようにも思える。しかし、199ドルというのは新しい3GのiPhoneにアップグレードするのと同じ価格である。これだと誰でも3Gの新しい電話を買うだろう。それがアップルの狙いなんだろうけれど。

一つだけ気になるのは、外側が新品、内側が旧式というiPhoneの具合である。3Gのケースで中身が2Gなのだろうか。だとすると話のタネにひとつほしい気はする。

関連記事