スタンフォードでのチームプロジェクト

この1週間、スタンフォードはThanksgiving Weekということで休みでした。しかし休みの間の数日間を利用して小旅行に出かけるなど夢のまた夢、休暇中に一番時間を使ったのが、Machine Learning(機械学習)の授業のチームプロジェクトでした。
これは3人チームで取り組む小規模な研究プロジェクトで、授業で得た知識を動員して、応用(現実問題への適用)・アルゴリズム(新アルゴリズムを作るなど)・理論(アルゴリズムの性質を発見するとか、証明するなど)のうち一つの分野で成果を出せ、というもの。
成績の40%はこれで決まるので、皆必死です。


プロジェクトにかけられる期間は約2ヶ月で、しかも授業のある日はなかなか時間がとれないため、この休暇が勝負どころ、ということで毎日のようにチームメイトのインド出身の留学生2人と朝8時から顔を突き合わせてコーディングやアルゴリズムの検討をしていたわけです。


一緒に作業する中でやはり感じたのは、インド人留学生の優秀さ、そして意気込み。彼らはインドでの大学時代からしっかりと勉強して基礎ができているし、授業やプロジェクトに対して実に真剣。真剣さでいえば、どの国籍でも総じて真剣ですが、為替レートのことやこちらに来るまでの競争なども考えると、彼らにとって留学は輪をかけて重大なことなんだろうと思います。
ともかく、彼らはとても優秀で、僕が「こんな実装どうかな?」と提案すると、「オーケー、今コード書くからちょっと待って」といってすぐに出来上がったコードを送ってきたりするので、こちらも負けていられない。切磋琢磨する仲間としてとても頼もしい限りです。
そんなすごく優秀な人材がたくさんいるのが、さらにすごい。彼らのような人材が卒業後アメリカで経験を積んで、再び母国に帰って産業を引っ張ってゆくのだろうな。ある意味で、これはグローバルに活躍できる人材を大量に作り出す仕組みになっていて、そんなモデルが出来上がっているインド・中国は、人材面でこれからどんどん強くなっていくだろうなあと、インド・中国の留学生に囲まれて生活する日々の中で感じています。


なお、このプロジェクトで取り組んでいるのは検索がらみのテーマで、簡単にいうと大量の検索結果の中からユーザの関心の対象であろう内容を自動的に特定しよう、というものです。余談ですが、ミーティングの最中に「このプロジェクトがうまくいったらグーグルに売って一儲けしよう!」なんていう冗談なのか本気なのかわからない発言が出るあたりは、シリコンバレーの真ん中にある大学らしくて面白いところでした。


プロジェクトのもっと詳しい中身や、どんな風に進んでいっているかなども、時間があれば書いていきたいと思います。

Thanksgiving Party

寮と図書館とゲイツビルを行き来する生活の中ですっかり更新が止まっていましたが、ようやく休暇で時間の余裕が出たので更新を。こちらの生活にもだいぶ慣れてきて心の余裕が少し出てきたので、今後更新をがんばりたいと思います。

アメリカでは、今日はThanksgiving Dayという祝日で、大学も企業も多くの場所は休みでした。

Thanksgiving Partyでスタンフォードから少し離れた小高い丘の上にある日本人の方の家におじゃまして、パーティを満喫してきました。今日が僕にとって初のThanksgivingになるわけですが、噂に聞いていた七面鳥を見てその豪華さに衝撃を受けました。写真では伝わらないかもしれないけれど、本当に大きかった。一番大きいサイズのものだとか。

そして、今回のパーティにはシリコンバレーで活躍されている日本人の方々がたくさん集まって、とても刺激的でした。
家のオーナーの方自身も、シリコンバレーでバイオベンチャーを立ち上げて成功された人で、この場所がいかにチャンスをつかむのに良い場所か、そして僕達のような学生はどのようにしてこちらで経験を積むといいのか、様々なことを教えていただきました。
卒業後、20-30人くらいの成長中のベンチャーで働くと面白いよ、という話を聞いて、なるほど、いいベンチャーがあればそれもいい選択肢だな、と思ったり。ベンチャーは星の数ほどあるのでいい会社を探すのが大変かもしれないけれど。

そして、梅田望夫さん、はてなの近藤さんもいらっしゃっていて、お話ししました。はてなシリコンバレー支社は、現在まさにサービス開発中とのこと。これからサービスがいろいろと出てくるのが楽しみです。はてなのサービスがアメリカでも人気が出たら本当に面白いと思う。日本発のベンチャーが世界に名を轟かせたら、爽快だろうなあ。はてなシリコンバレー、応援してます!


しかし今日改めて思ったのは、こちらに来てよかったことの一つは、日本だとなかなか会えないような人達に会うチャンスが多いこと。日本人も、アメリカ人や多国籍の人々を含めて。
このチャンスを活かして、こちらにいるうちに色々な人と会っていきたいと思います。今はまだ時間ないですが・・

スタンフォードの授業の様子

すっかり更新が遅くなってしまいましたが、久々のポストを。


スタンフォード到着後の3週間は、
1週目:生活立ち上げ
2週目:オリエンテーション&各種交流イベント
3週目:授業1週目
というように、慌しく過ぎていきました。
こちらに来てから様々な新しい物事に触れて、書きたいことはたくさんありますが、一度に書くのも無理なのでこれから順次書いていきます。


ともかくも、まずは先週から始まった授業について。
スタンフォードでは授業が始まるのが他よりも遅くて、今年は9月25日から始まった。最初の週はshopping weekとも言われ、学生はこの週に色々な授業に出て自分に合った授業を選ぶ。
1クラスは週に2〜3コマ授業があり、大学院生は1クオータに3つ授業を取るのが普通。授業に出る前の印象はずいぶん少ないな、というものだったが、出てみてわかったのは、1クラスがすごく重くて3クラスで十分忙しいということ。
スタンフォードの授業は日本の大学とはずいぶんと違う。(そして、聞くところによると他のアメリカの大学と比べてもずいぶん負荷が大きいらしい。)先週9個くらい授業を回って見えた全体像は、次のような感じ。


まずクラスで使う教科書が1000ページくらいあり、全て網羅するわけではないけれどそれを1クオータ(10週間)でやるわけなので、工学といえどReadingの量がすごい。もちろん教科書読みは授業の前にやっておくので、英語を読むスピードが日本語の1/3以下の身としては土日に読みためておかないとしんどい。
さらに、宿題の量もなかなかで毎週けっこうな量の宿題が出る。特にコンピュータサイエンスはprogramming assignmentが重いので有名。宿題の出来が成績の半分弱くらいを決めるのが普通なので、必死だ。
そして、試験がMid termとFinalと大抵2つあって、これはつまり1ヶ月ちょっとごとに試験ということ。
最後にとどめは、チームによるFinal project。これはコンピュータサイエンスで特に多いが、チームでわりと大きめのプログラムを組んで発表するというもの。


以上のような内容を、10週の中に詰め込むのでかなり密度が濃い。
たいていの授業はこれらを全てやるわけではなく、Reading・宿題・試験2つ(もしくは試験1つとFinal Project)をやる、というのが平均だと思う。
しかし中には全てをやってしまうとんでもない授業があって、CSの中でも最も難関といわれている人工知能の授業をとった生徒は寝る暇が全くなくなるらしい。


と、このようにハードな授業だが、内容が面白いためつらい中でもけっこう楽しめる。
今クオータは、僕はコンピュータアーキテクチャ・データベース・機械学習・Software as a serviceというセミナーを取っているが、どれも面白い。


授業の様子や内容について、追い追いまた書いていきたいと思います。

生活立ち上げ

Palo Alto到着2日目から生活の立ち上げを開始、2日間で生活の基本的な部分をほぼ立ち上げてしまった。(これは、かなり早いと思う。)ポイントは、車の運転できる友人のヘルプと必要なものの事前のリストアップ。


これから留学する人の参考にもなると思うので、どんな風に事が進んだかをわりと詳細に書いておきます。そうでない人には、長いわりにあまり面白くない内容かもしれません。長さを見て、ああ大変なんだなくらい思っていただければ。


生活立ち上げ一日目(11日)
9:30 ホテルからHousing Officeに確認の電話をする。確認の電話をしたところ、会議中で11時まで鍵は渡せないとのこと。
11:00 寮の鍵をピックアップ。寮の部屋に入り、スーツケースを降ろす。
11:10 Stanford Book Center(生協みたいなところ)でBed in a Bag(シーツ・枕セット。寮はベッドのサイズがちょうどいいのでBook Centerで買うのがいい)を買い、他の品の値段をチェック。その後友人の車で少し遠くにあるWal-Martに向かう。
12:00 Wal-Martで生活に必要なものを一通り買う。リストにあるものを順番にカゴにいれてゆく。冷蔵庫、ポット、炊飯器、コーヒーメーカー、食器、水、米などなど。こういったものは、Wal-Martで一気に買うのが効率がよく、安くあがるのでいい。ただ、荷物が巨大になるので必ず車が必要。
15:00 近くにあるSearsや電気屋で追加の小物を購入。
15:30 遅めの昼食をPalo Alto Downtownにて。友人にご馳走になり地中海風サンドイッチをほおばる。
16:30 荷物を寮に一度降ろす。
17:00 大学を出てちょっとのところに自転車屋が3軒集まっている場所があり、そこで良い自転車を物色。レンタルで数回使った新品同様の中古自転車を安くで手に入れる。
18:00 購入した自転車で寮に戻る。道すがら、食料品店を2軒あたって朝食向けの牛乳やシリアルを購入。
19:00 寮に到着し、とりあえずPC周りを荷解きしてセットアップ。
21:00 友人と夕食
23:00 シャンプー・石鹸の買い忘れに気づき、夜も開いているSafewayで購入
と、このように、この日で生活物資はほぼ揃った。


生活立ち上げ2日目(12日)
この日は、基本的に全て自転車移動。このあたりは昼間は日差しが強く暑いので、水を持っていくのが重要。
6:00 起床。軽くランニングに出て、自分の部屋で朝食。
7:00 寮のインターネット接続の登録。これが意外と時間がかかった。さすがにしっかりしていて、PC Health Checkerプログラムなどを走らせてからでないと登録できないようになっている。待ち時間を利用しつつ、スーツケースの荷解き。収納スペースがわりと豊富にあるので、助かった。
そして電話のセットアップ。これがよくわからず寮の管理の人に聞いたが的を得ず、結局自分で解決。
最後に、大学のシステムにアクセスし住所情報などを登録。(留学生にとって、これはけっこう重要。)
10:00 International Centerへ。必要な手続きのやり方や、オリエンテーション情報など網羅的にもらう。手続きをいろいろとやる前に、ここに来るのは正解。
12:00 食堂にて、昼食。様々な人種、年齢の人が食事をしていてStanfordにおける人の層の厚みを感じた。Chopstixという店で中華を買った。おいしいが、こちらの食事はなにかと味が濃い。喉がかわいて仕方がない。
13:00 一時部屋に戻り、午後行くべき場所の確認と水ボトルの補給。
14:00 学生証を入手。窓口についてからは一瞬で手続き完了。しかし、場所が去年と変わってプレハブになっており、見つけるのが大変。Main Quad裏のVisitor Centerで聞くのが手っ取り早い。
14:30 銀行に行き、口座開設・クレジットカード作成。これも、窓口の人と相談しながら進めれば問題なくできる。しかし、行員の人が口座開設に必要なデポジットについて忘れていて、後でまた来いとメールが。再び寄ったときにはすでに銀行は閉まっていて、また明日いくことになる。
16:00 携帯電話の購入。Cingular Shopでスタンフォード生に割引があるというので少し遠いが行く。しかし、結局プリペイドに対しては割引はなく、Wal-Martでついでに買うべきだった。また、ここではとんでもなく待たされた上に、手続きが遅れているとかで結局すぐには携帯が開通しなかった。
18:00 部屋に戻った後、Stanford Book Centerで買い忘れたものをいくつか購入。なお、買い忘れの中で一番意外かつ手に入れづらかったのが、サンダル。共同のシャワールームを使うのに、サンダルがあるとなにかと便利なのだが、これがどこにも売っていない。結局、Book Centerで4ドル程度で見つける。


こうして、寮に到着後2日で生活の基本が全て立ち上がり、かなり快適に生活できるようになった。
この作業は、かなり疲れるので集中して一気にやってしまうのがいい。
また、銀行や携帯の例のように、こちらのサービスはたまにちゃんと通らないことがあり、そういったときにどう対応するかが大事と思った。何が原因で、どうしたらいつうまくいくのかなどしつこく聞いておいた方がいい。

The first day on Stanford campus

とうとう、Stanfordに到着。
夕暮れ時に到着し、Memorial ChurchやHoover Towerを眺める。

本当に、きれいなキャンパス。Sand Stoneで統一された建物の色合いと、やしの南国風味が独特の雰囲気を作り出している。
その後日が落ちてからも、ライトアップがされてとてもきれいだった。(写真をとっておけばよかった・・)

日曜でHousing Officeが閉まっているので、Downtown Palo Altoのホテルに泊まる。大学の近くのホテルは、スタンフォードの学生に割引をしてくれるので助かる。フロントで親切にいろいろな地図を渡してくれたし。
明日から、生活の立ち上げを始める。やることがけっこういろいろあるが、効率よく数日で基本的なものは完了したい。


本日の教訓。車で移動するときは、キャンパスやホテルなど行く場所の地図はしっかりプリントアウトしておくべき。日本と同じ感覚で頭に入れていっても、標識の形式も違うしよくわからなかった。だいたいの場所はわかるのだが目的地に着くまでけっこう苦労した。

梅田望夫さんのイベントに行ってきました(後編)

日本語環境を使えるPCがトラブルでダウンしていて、遅くなってしまいましたが前回のポストの続きを。
前回は前半30分で考えたことを書いたので、今回は後半の感想・考えたことを数点ほど。

−ソフトウェア開発の方法は実際のところあまりわかっていない。現場では毎日バグで困っているが、バグがどう作られるかはわからない。バザール方式開発が生産性が高いのはわかっているが、なぜ高いのかはよくわからない。(吉岡さん)


ソフトウェア開発がどのようになされるかの解明もまだなされていないけれど、さらにオープンソース開発(バザール方式)がなぜうまくいくのか、のメカニズムを解明するためには、さらに高いハードルがあるように思う。
と、いうのが、オープンソース開発は原則無償であるため、経済的に合理的な意思決定として各個人の行動をモデル化することができないから。定義にもよるけれど、オープンソースは利他的な行動をベースに成り立っている。今のところ、そういった利他行動をきっちりと説明するモデルは、経済学においても工学においても、僕の知る限りない。
前回のポストでも書いたけれど、オープンソース現象がなぜうまくいくのか、どのように成り立っているのかをわかることは、大きな意味を持つと思う。
そのモデル化の研究をやっている人も世界にはきっといるんだろうな。


オープンソースは、歴史的に見てとても大きい話に思える。人間の善意の総和と悪意の総和を比べたら、善意の総和が大きいのではないか?オープンソースがうまくいっているという事実を見ると、そんな楽観主義が正しく思える。(梅田さん、吉岡さん)


オープンソースは生産のあり方の転換という意味で大きな話だが、さらに、その背後にある文明、哲学の話を考えると、たしかにさらに大きい話だと思う。インターネットによって個人が自由に自己表現し、他の個人とインタラクションする現在、デジタル化された世界中の個人の善意と悪意が総和としてネット社会を動かしている。考えてみれば、そんな時代は今までになかった。インターネットでつながった個人がダイレクトに、あるいはゆるやかな組織・コミュニティを通じてインタラクションをする様子を通じて、人間の本質の一側面が新たに見えてくる、そんな気がする。
情報文化学の人などは、そのようなことを今解析しているのだろうか。一体、善意の総和と悪意の総和は、どちらが大きいのだろう?歴史がその解を出すのが楽しみでもある。


オープンソースでも、ビジネスも回らなくてはいけない。十分利益を得た上でオープンソースに貢献するにはどうしたらいいかはまだわからない。(吉岡さん)


この話は、CSに行く僕としてはとても興味がある。プログラムを書いてもご飯を食べられなくなるとしたら、大変なことだ。それは、他の知的生産についても然り。知的生産の多くがオープンソース的にされるようになったら、皆どうやって食べていくのか?
だが、ここについては今のところこのように僕は考えている。知的労働の金銭化の源泉が、ソースコードの独占的所有とライセンス販売から、サービスの提供への対価へと変化することで、企業は飯の食い上げにならずにすむ、と。企業は、オープンソース開発に貢献しつつ、その果実を自社のサービスに利用し、またサービスのコアの部分はクローズしておくことでサービスの独自性を守って収益を確保する。このようにして多くの企業がオープンソースに貢献しつつ、収益も確保し、オープンソースに貢献している多くの個人とともに共生する生態系を作っていければ、インターネット上のサービスの質はどんどん上がっていくのでは。
ただ、サービスのマネタイズ(金銭化)の方法は、まだ問題が残る。数ヶ月前にYahooの人の話を聞いたところでは、今のところマネタイズの方法はユーザからお金をもらうか、広告、この二つしかないようだ。しかも、前者はあまりうまくいっていないという。
広告だけでは大きいとはいえパイのサイズは限られてくる。人々が知的生産をオープンソース的に行い、しかもご飯を食べていくには、今とは違うマネタイズの方法が必要になるのかもしれない。


−なぜ梅田さんははてなに注目したか?創業者の近藤さんに初めて会ったとき、「なんだこれは?」と思った。変わり者で面白い。日本で唯一シリコンバレーの技術ベンチャーのにおいがする会社。(梅田さん)


個人的な思いいれとして、はてなのサービスは好きだし、近藤さんが自分と同時期にシリコンバレーに行ったのはなんだか嬉しい。日本発の技術ベンチャーが、世界に対して面白いサービスを提供できるようになったら、素晴らしいと思う。
僕も、そんな風に世界へ発信していく方法を模索していきたいと思う。


さて、明日はとうとう現在居るCalgaryからPalo Altoへと発ちます。
初めて立つスタンフォードがどんな場所か、今から楽しみ。できれば、きれいな写真をとってアップしたいと思います。

梅田望夫さんのイベントに行ってきました

9月1日の梅田望夫さんとミラクリナックスCTO吉岡弘隆さんの対談イベントの手伝いに行ってきました。
このイベントの運営はJTPA(技術を志向する日本人プロフェッショナルがシリコンバレーで働くのを支援するためのNPO)のボランティアスタッフが中心となってやっていて、自分はJTPAの皆さんといままで関わりはなかったけれど、これからシリコンバレーに行くこともあり縁あって手伝いをすることに。

運営側にいたため、対談自体は前半30分程度しか聞くことができなかったので今日は前半で自分が興味を持った点と思うところを3点ほど。残りは出国後海の向こうでビデオを見てまたアップしようと思います。
なお、対談のビデオはYouTubeにアップされているので、見たい人はこちらからどうぞ。
http://www.youtube.com/watch?v=t2-Uk_cIctc


−たかがシリコンバレー、されどシリコンバレー
梅田さんは、シリコンバレーについて考えるとき、このように思われるそうです。たしかに、Yahoo, Google, Youtubeが生まれ、Web系の先端のベンチャーの多くが集中しているこの場所には、他の場所にはない何かがあるようだ。よく言われるところでは、シリコンバレーにはVCが集まっていて、産学連携の体制も整っており、ベンチャーを興すのに良い環境がそろっているという話がある。ただそういった仕組みを世界中がSVから学んで真似をしてきている中でもやっぱりシリコンバレーが台風の中心であり続けるのは、精神や文化といった別の要素が深く関わっているのかもしれない。それは、一体何なのか?そのあたりを、これから自分の目と耳で確認してきたいと思う。

−90年代はMicrosoftに代表される大規模ソフトウェア開発が主流だったが、今はオープンソース的な開発のやり方がそれを超えてきている。Googleの組織体制はこのオープンソース的なやり方になっていて、人を強制するツールがなく、本当に自分が何をやりたいかというエンジニアの興味をベースに高効率の開発が行われている。
この話を聞いていて思ったのは、今後オープンソース的なやり方の有効性が証明されて、また他業種でも応用が効くということになった場合、これは組織のあり方・労働のあり方の革命になるということ。労働のあり方が変わるということは、人の生活のあり方が変わるということで、そういった動きが大きなうねりとなってきたら社会も大きく変化するのではないだろうか。プログラマー達が自分達の好きなことを追求して始めたオープンソース開発。これが、産業と社会の大きな変革の萌芽だったとしたら、僕達はとても面白い時代に生きていることになる。

オープンソースソフトウェアのほとんどは使われない。そんな中で皆に使われるトップのソフトウェアは非常に高い生産性で作られていて、企業製品にも引けをとらない。
200万人いるといわれているオープンソースプログラマーが生産する無数のソフトウェアのうち、一握りだけが多くの人に使われ、またそのようなソフトのコミュニティが成長してより多くのプログラマによって開発がされてゆく・・このイメージは、あるモデルに似ている、と直感的に思った。シリコンバレーにおける、ベンチャー企業の多産多死のモデル。大量のベンチャー企業のうち少数だけが生き残り、成長を続けていく。このように、母数を大きくすることで、全体の中に「当たり」が生まれる頻度が高くなり、また当たりがあった場合、そこにリソース(オープンソースではプログラマベンチャーでは人材・資金など)が集まってゆくことで当たりの個体がすごいスピードで成長してゆく(この仕組みは、CSで扱う遺伝的アルゴリズムのエッセンスでもある)。このようなメカニズムが、オープンソースの有効性を生む一つの要因になっているのかもしれない。この原理自体は、ソフトウェアだけに限定されるものではないので、もしこれが本当に有効性の一因であったならば、母数の確保、そして当たり個体へのリソースの移動という条件を担保できるような他の産業でもオープンソースが有効、などという横展開も考えられる。この仮説自体は間違っているかもしれないけれど、オープンソースがなぜすごいのか、そのメカニズムがわかれば色々な応用ができ、そのインパクトはかなり大きいと思う。



追記 会場を貸していただいた日本オラクル様のご好意で、元祖社員犬ウェンディに面会させてもらいました。想像以上に大きかったんですが、とても人なつっこくかわいい犬で、社員の皆さんに可愛がられているようです。

社員証もちゃんとあるんだね。