I miss Cambridge, MA.

Cities and Ambition

One of the exhilarating things about coming back to Cambridge every spring is walking through the streets at dusk, when you can see into the houses. (略) In Cambridge you see shelves full of promising-looking books. (略)

2001年から2004年まで住んだケンブリッジの町(2005年から2007年は隣町のアーリントン)、すごく良い町だった、住むのが、そこで生活するのが、そこで出会う人々が好きだった。知的空間だった。学ぶ亊を町全体がEncourageしていた。街にDiversityがあった。チャールス川沿いの、JFKパークが好きだった。ハーバード大学の敷地も素敵な空間だった。街の喫茶店で本を読むのが大好きだった。ケンブリッジに住んでいる時に結婚した。ケンブリッジに住んでいる時に娘が生まれた。本当に良い町だった。またいつか住む為にケンブリッジに戻りたい。

知的能力を再生産する努力を続ける

まず入社して十年間は泥のように働いてもらう――丹羽宇一郎さん

の中のパラグラフ:

毎日深夜まで会社にいろとは言わない。本を読み、人と会い、ものを考えることで知的能力を再生産する努力を続けることだ。大変ですよ。ついて来られない社員が出ても仕方ない。

(僕が自分自身に付いて考えた事) 後々、自分自身の人生を振り返った時、後悔しない為には、ある種の成功が自分にとって必要である。その成功に少しでも近づく為には、日々勉強し続けなければならない。丹波さんの言葉を借りれば、「知的能力を再生産する努力を続ける」ということである。僕が一目置いている、または尊敬している人達は、絶えず勉強している。勉強したからといって、成功が保障されるわけではないが、勉強しなかったら、99.99%成功できないと思う。

翻訳:Use a Web Proxy for Cross-Domain XMLHttpRequest Calls

このエントリーは下記の翻訳です。ただ読むのもつまらないし、自分の血となり肉となるよう翻訳に挑戦。

JavaScript: Use a Web Proxy for Cross-Domain XMLHttpRequest Calls

JavaScript: クロス・ドメインXMLHTTPRequest呼び出しの為のウエブ・プロキシの利用
XMLHttpRequestオブジェクト(XHR)は、AJAXを利用したウエブアプリケーションの根幹となるオブジェクトです。しかし、ブラウザーによる、ドメインをまたがってのネットワーク・アクセス制限の為、クライアント・ウエブ・アプリケーションの開発は複雑です。このハウツーでは、単純なケースを用い問題点を説明し、一つの解決策(あなたのウエブ・サーバーから他のウエブ・サービスにリクエストを中継するウエブ・プロキシ)を提供します。

  • なぜプロキシが必要なのか?
  • Yahoo!ウエブサービス用のPHPプロキシ
  • 他の解決策
  • その他の情報

なぜプロキシが必要なのか?
全ての最新のウエブ・ブラウザーは、ネットワーク接続にセキュリティーの為の制限を加えている。その中にXMLHttpRequestも含まれる。この制限はスクリプトやアプリケーションが、元のウエブ・サーバー以外のサーバーに接続する事を禁止している。あなたのウエブ・アプリケーションとアプリケーションが利用するXMLデータが同じサーバーから来る場合は、この制限に含まれない。

しかしながら、あなたのウエブ・アプリケーションと、アプリケーションが利用するデータが違うサーバー(例えばYahoo! Web Services)から提供される場合は、ブラウザーは他のサーバーに接続する事を制限する。

この問題には、いくつかの解決策がある。もっとも一般的な解決策は、ウエブ・サーバーにプロキシを設定する方法である。XMLHttpRequestを使用し、直接ウエブ・サービスを呼び出す代わりに、プロキシに対して呼び出します。プロキシは呼び出しを実際のウエブサービスに中継し、そしてウエブ・サービスからの返答を、クライアントに中継します。ブラウザは、あなたのウエブ・サーバーに対して接続しているので、データはあなたのサーバーから返されます。

セキュリティー上の理由から、利用が制限されたウエブ・サーバーにプロキシをインストールする事は良いアイデアである。どのウエブサイトにも接続する開かれたプロキシは悪用にも開かれている。プロキシへの接続をあなたのアプリケーションのみに制限するのは難しいけれども、あなたはプロキシからの接続を指定したサーバー以外への接続を制限できる。接続するURLをプロキシ内にハード・コードしたり、オプションを制限することにより、あなた以外のアプリケーションにとって、利用価値を少なくする事が出来る。

Yahoo!ウエブサービス用のPHPプロキシ
Yahoo! Developer NetworkJavaScript Developer Centerにて、Yahoo! Search APIのためのPHPで書かれた単純なウエブ・プロキシを提供しています。あなたのウエブ・サーバーに、このプロキシをインストールすることが出来ます。

プロキシはグローバル・変数の中にHOSTNAMEという名前でYahoo!ウエブ・サービスのURLを組み込んでいる。あなたは、この変数をあなたが利用するウエブ・サービスに変更する必要があります。これはYahoo!ウエブ・サーチ・サービスに使われているドメインです。他のドメインにはYahoo!ローカル (http://local.yahooapis.com) や Yahoo! トラベル (http://api.travel.yahoo.com)があります.

define ('HOSTNAME', 'http://search.yahooapis.com/');

このPHPプロキシをあなたのクライアントアプリケーションから利用するためには、JavaScriptのコード内にあるウエブ・サービス・リクエスト用のURLに、ドメイン名以外のYahoo!ウエブ・サービスリクエストへのパスが含まれている必要があります。ドメイン名はプロキシにより付加されます。下記のコードは、JavaScript Developer Centerの、more complete XMLHttpRequest code sampleから引っ張って来ました。

// The web services request minus the domain name
var path = 'VideoSearchService/V1/videoSearch?appid=YahooDemo&query=madonna&results=2';

// The full path to the PHP proxy
var url = 'http://localhost/php_proxy_simple.php?yws_path=' + encodeURIComponent(path);
... // core xmlhttp code
xmlhttp.open('GET', url, true);

このサンプルではHTTP・GETを使用しているが、サンプルのPHPプロキシはPOSTもサポートしている。

あなたは、このプロキシを編集して、クライアントへの返答を、より扱いやすい形に変更できる。

他の解決策
プロキシの他にも、クロス・ドメイン・ブラウザ制限を回避するためのいくつかの方法がある。

  • アパッチのmod_rewrite、又はmod_proxyを利用し、あなたのサーバーから他のサーバーへリクエストを転送することが出来る。あなたのクライアント・コードからはあたかもウエブ・サーバー上にサービスがあるかのようにリクエストを送る。そしてアパッチがあなたのために他のサーバーへリクエストを転送してくれる。
  • JSONと、dynamic<script>タグをXMLとXMLHttpRequestの代わりに使用する。<script>タグの中で直接ウエブ・サービスを呼んでいるが、セキュリティーの問題を回避できる。もしあなたが使用するウエブ・サービスがJSONをアウトプット・フォーマットとする事が出来れば、ウエブ・サービスからのレスポンスをJavaScriptオブジェクトとしてeval出来る。このサンプルはJSON Documentationにある。
  • デジタルとしてあなたのスクリプトをサインする。Firfoxはあなたのスクリプトにデジタル・サインを当てる事ができ、そしてそれらのスクリプトはブラウザーにより信頼される。この方法で、FirefoxはXMLHttpRequestをたのドメインに対し使用できる。しかしまだ他のブラウザーはこの昨日をサポートしていない。

その他の情報
JavaScript、XMLHttpRequest, Yahoo! Web Service APIs、その他のJavaScript開発に関する情報は、Yahoo! Developer Network JavaScript Developer Centerを参照して下さい。

音楽とプログラム

長瀬弘樹という作曲家のことを読んで思った亊
前から思っていたのだが、自分が一目置いているソフトウエア・エンジニア・ハッカー・デベロッパー(コードを書く人々)の多くが、昔、音楽に力を入れていました、今も音楽しています、という人が多い。なぜだろう?ソフトウエア・ウエブ開発って、クリエイティブな部分があるから、音楽で養った・音楽ができる程の、クリエイティビティがソフトウエア開発に役に立つのかな?自分は昔から、リズム勘が悪く、歌を歌っても音程を外してしまうので、昔から音楽は苦手であった。小学校の頃、回りは皆、ベストテンとかトップテンとか毎週見ているのに、自分は見ていなかったり。中学校の頃、洋楽ブームてのがあったのだが、自分はハマっていなかった。僕も、音楽のセンスがあって、音楽にハマっているような人だったら、もっと良いエンジニアになれていたのかもってたまに妄想してしまう。

大学時代のメジャーは言語(英語)ですと言うアメリカ人の良いエンジニアにも結構会ったことがある。自然言語を深く理解する能力が、コンピューター言語で良いコードを書くのに役立つのかな?

当然であるが、メジャーは数学でしたというエンジニアは多い。スケーラビリティを必要とするアプリケーションを開発する為には数学の知識が役に立つ。

はったり

12:必勝、はったりの方法論

はったりは、相手を欺くために仕掛ける罠ではない。虚勢を張って自分を大きく見せるための姑息な手段でもない。はったりとは、相手と対等にやりあうために、自分をあえて高いところに置いてみる心の動作だ。それには、あとには引けない覚悟を伴う。はったりをかけた以上、自分を高めなければならないからだ。とても勇気のいることだが、強敵や難敵に挑むときの気持ちの表れではないか。と私は思う。

“はったり”って、次のステップへ進む為には重要ですよね。なぜって、次のステップで出来なければならない事は、今のステップでは経験できないから、今のステップの段階では、次のステップの事ができるかどうかは分からない。でも、次のステップに進みたい。進む為には、次のステップの事も出来ると、”はったり”を、かけなければならない。はったりのかけかたが上手だと人生のチャンスが広がるのだと思う。

今度こそ朝型

今度こそ朝型になるため、早起き日記再開。去年は効果がなかったが、今年こそ!

Hidekiの早起き日記

Life is beautifulの中島さんは4時半起きだそうだ。

ここの所、朝の4時半ぐらいから起きて朝ご飯前に2〜3時間集中してプログラミングをするのが日課のようになっているが、これを続けていると、昼過ぎぐらいから妙に眠くなって頭の回転が鈍くなる。それを解消するには、パワー・ナップが最高
Life is beautiful

The search is a portal to the web applications!

I used to use MapQuest mainly for internet Map application. Main reason was I have thought MapQuest’s Driving Direction’s result is better than Google Map and Yahoo! Map. I just realized I am using Google Map instead of MapQuest and this days I am rarely use MapQuest. Why? My consideration ended up that Google Map is well integrated with Google Search. I used to visit Map site, then typed address to find the map. This days, I types address in the search textbox of browser’s toolbar, top of search results is always the link to the Map. Search and Map application are well integrated, so it reduced total time to reach the map. It made my habit changed.

The search is a portal not only to the web but also to the web applications!

自分の仕事に自信を持つ

10:試練は花への水である
今日読んでいて、考えさせられたエントリー

「自信のねえクソ原稿だったら最初から書くんじゃねえ、ばか野郎が。自信を持って書いた原稿なら、突っ返されたとき、この原稿のどこがいけないんだと食ってかかるくらいの気概がどうしてねえんだ、お前たちには。情けねえ、俺は情けねえ。ねえママ。水割り、おかわり」

といった感じでピッチがあがっていく。当然、メートルもあがっていく。

「悔しかったら言い返してこい。てめえの書いた原稿に自信があるなら掴みかかってこい、殴りかかってこいよ。俺は胸ぐらを掴んでくるようなイキのあるやつが好きなんだ、そういうやつの原稿しか信用しねえ」
「いいんですか、殴っちゃって」
「いいに決まってんだろう、ばか野郎。もっと喧嘩しろよ。ねえママ。水割り、まだ?」

この酔っぱらい……、もとい、この大編集長の言うことにはとても大きな意味がある。と当時の私は考えた。

自信のある原稿を書け——、それは、自信のある仕事をしろということだ。

10:試練は花への水である ページ3

私も、自分の仕事に自信を持たなければ。こんな尖った感覚(気持ち)が、良いものを作るには必要だ。

Google Street View

去年(2007年)の秋、マサチューセッツ州からカリフォルニアに引っ越して来た時には、まだ前に住んでいた辺りはGoogle Street Viewにはカバーされていなかった。いまだに時々マサチューセッツ州のMapを見るのであるが、今日見たら前住んでいた家の辺りがGoogle Street Viewにカバーされていた。凄く懐かしい気持ちになった。寒いけどまたマサチューセッツに帰ろうかなー。


家の窓から毎日のように眺めていたグランド

これいくらって書いてあるんですか?

↓↓↓↓↓今日、もっともうけたのがこれ↓↓↓↓↓

[0.002+e^(2pie)]=535.4936555 and the limit of the sum of (1/2^2) as n goes to infinity is = 1.
Therefore $535.4936555 + 1 = $536.49
So, this check is approximately made out for $536.49

電話会社宛て536.49ドルの個人用小切手
こんなチェック送られてきたら、あなたならどうします?