久しぶりのサウナは実に体の芯まで効く。すごくリラックス出来た。サウナ代は540円ぐらいだ。サウナから出て歩いていたらバイタクに声をかけられた。大通りまで行きます、といって素早くバイタクに乗る。いつもだとここから大通りまで30分排気ガスにまみれて歩くのだけど、我慢しない事にした。この後プロンポンにある日本食に行ったのだけど、12時を回ってしまって、閉店してしまっていた。スクンヴィットの行きつけのイサーン屋台に行って食事をした。その後アラブ街に行って水タバコを吸って帰った。今日はいい一日だった。◇最近、何かよくいろいろな人に話しかけられる。僕はどう見たって日本人だし、いつも大きなかばんをしょってるし、どう見たってタイ人には見えないと思うのだけど、よくタイ語で話しかけられる。歩き方とかそういう雰囲気で僕がタイ語が話せるのがわかるのだろうか。それで、「あれ?タイ人じゃないですよね?」とか「タイ語下手ですね」とか言われる。これはたぶんいいことだと思う。「タイ語上手ですね」って言われるのは、あくまでも僕が外人に見えるのにタイ語が話せるのがものめずらしくて言われるのだと思う。下手ですね、っていわれるのは、あくまでもタイ人として話しかけられているからで、良い傾向だと思う。タイで外人がタイ語を話すと、いきなり爆笑されたり、いきなりムッとされたり、いきなり無視されたり、いろいろな反応を受ける。(タイ人は外人好きだけど、タイ語が話せる外人は嫌い。最初のころはこれが慣れなくて、いちいち気分を害していたけど、最近はもう慣れた。いろいろな反応を受けてもすべて無視するのがポイントだと思う。タイ人と同じ感じ良さで対応する。相手がいくら感じ悪かろうが、タイ人として普通の「タイ的気遣い」を貫く。すると「あぁこいつは外人じゃないのか」という風になって、普通にタイ人として対応してくれるようになる。難しいのは、タイ人と同じ気遣いを保つ事だと思う。これは、タイ語以上に大切だと思う。タイ人は怒りを抑えられる精神力を持つ事がよい人の条件であるらしい。これが慣れないとなかなか出来ない。いえば、タイの電車にはテレビがついていて年中コマーシャルが流れているのだけど、こないだその広告の中にこういうのがあった。高級車を乗り回すお金持ちがいる。そこにカブが走ってきてドアミラーと衝突、見事に破損、ドアミラーが道路に落ちる。金持ち運転手、外に出てきてドアミラーを拾う。カブの運転手に歩み寄る。恐れおののくカブの運転手。すると金持ち運転手、怒鳴るかと思いきや、カブの後ろのゴミ箱にミラーを捨てて何も言わずに立ち去る。金持ちの運転手は実は車の中で○○社のお茶を飲んでいた、というオチだった。「○○社のお茶を飲むと気持ちが落ち着く」という広告だった。これを見て思ったのだけど、とにかく何が起ころうとも怒りをコントロールできるというのが、大人のタイ人のあるべき姿であるようだ。ちゃぶ台返し・激怒の文化である日本とは正反対だと思う。タイ人がどんなに無礼な事をしても、怒らないのが大切だと思う。それがいかにタイ人の常識と照らしても大変な無礼である場合であっても、とにかく許して笑顔で対応することが大切ではないだろうか。ま、でも、「あ、こいつ絶対あれ落とすぜ」「あ!落とす落とす!」「あーほらやっぱ落とした」みたいな無用心な失敗をする人は大勢いる。いう時はその人がその問題をやらかす前に、こちらから未然に対応しして防ぐようにする。気がつかないでその人が失敗して被害をこうむったら、それは気がつかなかったこちらの責任と心得て、絶対にその人に怒らない。怒っても絶対に責任は取ってくれないし、言ったら言っただけ気分が悪くなるだけで損だということもあるけど。そんなことが大切であるような気がする。◇もうねむいがこれだけは書こうと思う。メソッドというものがある。処理というのは、実はStringクラス以外でもものすごく大切な処理だということがわかった。いった、非同期処理用のライブラリの使い方も、だいぶ腑に落ちるようになった。いう大切な概念も理解した。日本人でこれの使い方を100%理解している人って、果たしているんだろうか、と思う。すごく大切だけど、これらの使い方を日本語で説明しているのをあまり見た事が無い。危なげのあるオブジェクトだという事もわかった。このオブジェクトは出来れば使わないほうがよさそうだ。頭に問題をインプットする事は大切だ。リラックスしないで詰め込むだけだと、理解に到達しない。理解に到達しないと、応用が思いつかない。散歩して、サウナに入ったりしてリラックスして、頭が働く状況を作る事は、ものすごく大切だと思った。日によってプログラミングがはかどったり、はかどらなかったり、いろいろあるけど、プログラミングがうまくいくかどうかは、実はパソコンの前に座ったときにすでに結果が出ているような気がする。パソコンの前に座るまでの過程が大切なんだと思う。推敲してから寝たいけど、今日はもう疲れたので、寝ようと思う。これは原理的に言ってそのままストレートに使う事は出来ない。ストレートに使うとどうしてもレースコンディションという難しい問題が発生する。これは設計の悪さではなく、原理的にそういうものだからだ。レースコンディションを防ぐためには、どうしてもきちんとガベージコレクタと同期を取りながら処理を行う必要が出てくる。WeakReferenceについてhttp://d.hatena.ne.jp/Ewigkeit/20080823/1219463052この人が一秒待つとうまくいく、といっているのがまさにそれだ。自分でキューを管理しなければいけない。17:11わかった、謎が解けた。ガベージコレクタはおそらく別スレッドで動いている。ガベージコレクタを開始するのみ。処理すべきWeakReferenceがあればそれを返す。呼び出した後すぐにpollをチェックするとレースコンディションが発生する。返すときもあり、非nullを返す事もある。