2009年5月28日木曜日

技術制約とアーキテクチャドライバー

今、私がかかわっている studio project で非常に困難なのが技術制約 (technical constraints)の対処です。技術制約とはなにかを説明する前に、今回はソフトウェアアーキテクチャに登場するアーキテクチャドライバーという概念を導入するところまでお話をしてみようと思います。

2009年5月22日金曜日

夏セメスタースタート!

一週間の休みが終わり、またここ cave に戻ってきました。
MSE 生は夏休みもインターンもなく、8月頭のプロダクトリリースに向けひたすら studio プロジェクトです。というわけで今期はこんな感じです。

2009年5月14日木曜日

すべては数字で語れる?

前回の投稿から数学ネタつながりで、留学前からハマってたドラマ Numb3rs を紹介します。



2005年からアメリカで放送されており、数学を武器に事件を解決するドラマ。私はテレビがないのでリアルタイムで今どこまで放映されているかわかりませんが、オフィシャルサイトではシーズン5のいくつかのエピソードがフルで見られます。

本ドラマの主人公は、FBI 特別捜査官である兄ドン・エプスと CalSci の数学の教授である弟チャーリー・エプス。弟チャーリーがさまざまな数式を駆使して、現場で戦う兄ドンの捜査を手助けします。シーズン1のエピソード1は、連続レイプ魔の13人目の被害者が死体で発見されるところから始まり、チャーリーは過去の被害者が襲われた現場をもとに犯人の居場所を確率で割り出そうとします。ちょうどスプリンクラーから撒かれた水の落下地点をたよりに、スプリンクラーの場所を逆探知するように。

このドラマの特筆すべき点は、カリフォルニア工科大学 (Caltech)の Gary Lorden 教授を数学のコンサルタントに迎えて番組づくりをしているところだと私は思います。劇中の黒板に登場する数式もしっかりチェックされているとか。もちろん数式や犯罪捜査以外にも、スリルやサスペンス、兄弟愛・家族愛などのヒューマンドラマが多くちりばめられているので、各エピソードで扱われる理論を知らずとも十分楽しめるのでお勧めです。パラマウントから日本版の DVD も出るみたいです!

数学ガールに比べると Numb3rs はずっと硬派な感じです。ただ、どちらも数学をテーマにして話をふくらませているところが、私は素晴らしいと思います。Everything is numbers^^




追記:
  • CalSci のモデルになっているのは Caltech
  • 兄弟の父親アラン・エプスを演じるのは、96年公開の映画インデペンデンスデイでも主人公デイビットの父親を演じたジャド・ハーシュさん
  • 直感に反するモンティホール問題

2009年5月12日火曜日

数学ガール最新刊!!

結城浩の最新刊『数学ガール/ゲーデルの不完全性定理』をアナウンスいたします。

ちなみに、 第1巻はオイラー(Euler)、 第2巻はフェルマー(Fermat)、そして、第3巻はゲーデル(Goedel)が登場。つまり、 E→F→G という順番になるわけですね。
やばい、これは楽しみすぎる。
なんだか小飼弾氏のリクエスト通りになってますね。
結城先生、G の次の H も考えてたりして。でも H って誰だ?・・・ヒルベルト(Hilbert)?

2009年5月9日土曜日

春セメスター、本当に終了!!

消耗の激しい1週間でした。
本番にむけて入念な準備をしないといけないものばかりだったので、しんどいのなんの。

2009年5月1日金曜日

春セメスター全クラス終了! Except・・・

今日で Analysis、Architecture、そして Algorithms と全てのクラスが終了しましたー
ちょっと感想をば。

[Analysis]
セオリーオンパレードのクラスかと思っていましたが、そうではありませんでした。ボードゲームのフレームワークをデザイン、インスペクション、実装したのち、テストケースを書いて、テストの実装と、開発フェーズの結構な部分をカバーしていてかなり実践的。加えて Hoare Logic、Static Analysis、Protocol Checking といったテストツールの基礎になっている理論も考慮されていて面白かったです。理論と実践、よくバランスがとれていました。

[Architecture]
課題が重かった・・・課題のたびに「これはプログラミングのクラスじゃないよー。アーキテクチャのトレードオフ分析に重点を置くんだよー。」って書いてあるんですけど、プログラミングに結構な時間をもっていかれました。あと、4人の TA の採点基準に結構なばらつきがあったため、クラス評価が若干低めでした。でも、この授業で学んだことはずっとこのあと自分の中で生きていくような気がします。スタイル、パターン、品質特性、品質特性のトレードオフ、アーキテクチャ評価など。どれも一朝一夕で身につくものではないけれど、卒業後も常にこれらのことを意識して開発していくのとそうでないのとでは、5年後、10年後、ソフトウェアエンジニアとしての能力の伸びが大きく変わってくる気がします。まだ、ぼんやりとしかいえないけど。

[Algorithms]
今学期個人的にベストのクラス。日本の大学時代まともに先生の説明を聞かず自学自習して苦労していたので、ソート、ハッシュ、動的計画法、グラフ理論、ネットワークフロー、P、NP など、このクラスを通して改めて学び直せたことがとても嬉しいです。このクラスに刺激されて、最後の秋セメスターには Machine Learning と Algorithms in the Real World というクラスをとります。めちゃくちゃ楽しみだー



最後のクラスでは、 Fair division and cake cutting をというトピックを取り扱いました。Cake cutting にちなんで授業の最後に Whole Foods のケーキを生徒にふるまう、ユーモアたっぷりな Manuel Blum 教授。


さて、来週は final の週なので期末試験と期末プレゼンが待ってます。やっぱり結構なプレッシャーで、とくに Studio Project の end of semester presentation と Algorithms の final exam が同じ日にスケジュールされてるあたりなんか、かなりいい感じ。