シリコンバレーツアーの仲間達と、ホソを食べてきた。
毎度のごとく、当日の朝11時にホソを食べるプランが立ち、
人を2時間で集め、18時から会食開始。

こんな流れでメンバーが10人集まったのは、
さすがシリコンバレーツアーに行く人たちとでもいおうか。

参加者から聞いた面白いネタをいくつか紹介。

2008年度に来る言語は iolanguage by ujihisa
io(アイオー)という言語があるらしい。普段はiolanguage(アイオーランゲージ)と呼ばれているそうな。
そしてそれは2008年度に”来る”言語らしい。

本家サイトをしっかり見れていないので詳しいことはわからない。
でも、「iolanguage触ってみた」的な記事を見ると、
割とらくちんに書けそう。
僕は行ないたい処理を簡単に速く書け、実行できる言語が好きなので、もしかしたらタイプにはまるかも。

興味のある方は以下のURLからどうぞ。

io
http://www.iolanguage.com/

フィールドサーバー by akippon
これは面白い試みだ。
自然環境の中にサーバを置いて、ネットワークを張る仕組み。
風力タービンやソーラーパネルを電源にしているので、外から電源をとる必要がない。
これが実現すると、自然の中でもネットが楽しめるようになる。
これはFONよりすごい。FONと同等の価格帯になればウチの庭に導入する。

Field Server
http://model.job.affrc.go.jp/FieldServer/default.htm

john wood by まきのさん
Microsoftをやめて、「room to read」というムーブメントを起こしている社会起業家の方。
詳しくは以下。

井上陽介のブログ: 社会起業家John WoodとRoom to Read
http://yoyo.typepad.jp/blog/2008/02/john-woodroom-t.html

まきのさんがTICONに行ったら出ていたらしい。
最近、Imaginearth collectionというイベントに関わっていることから、社会問題に関心がある。
そのため、john woodの活動に興味を持った。
彼はroom to readの活動について、書籍に記している。
この本は読んでみよう。

マイクロソフトでは出会えなかった転職
http://www.amazon.co.jp/%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%BD%E3%83%95%E3%83%88%E3%81%A7%E3%81%AF%E5%87%BA%E4%BC%9A%E3%81%88%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F%E5%A4%A9%E8%81%B7-%E5%83%95%E3%81%AF%E3%81%93%E3%81%86%E3%81%97%E3%81%A6%E7%A4%BE%E4%BC%9A%E8%B5%B7%E6%A5%AD%E5%AE%B6%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F-%E3%82%B8%E3%83%A7%E3%83%B3-%E3%82%A6%E3%83%83%E3%83%89/dp/4270002484/ref=sr_1_1?ie=UTF8&s=books&qid=1214972145&sr=8-1

Imaginearth collectionについては以下。

Imaginearth collection :: Worldwide Positive Movement
http://www.imaginearth.net/

「ワンダと巨像」が、すごすぎる。
さっきニコニコ動画でプレイしている動画を見て、
「ワンダと巨像」をすごさを知った。

PS2でこんなゲームがあったとは驚きだ。
PS3レベルの臨場感だと思う。
ぜひこのゲームの制作チームは、PS3で続編を出してほしい。
僕が特にすごいと感じているのは以下の要素。

  • フィールドのスケール感
  • ボス(巨像)の大きさ
  • カメラワーク
  • 音楽
  • 設定

もし、「ワンダと巨像」をプレイしたことのない人は、
以下のURLから動画を見てほしい。
きっと、「これがゲームか?」と思うはずだ。

http://www.nicovideo.jp/watch/sm229848

http://www.nicovideo.jp/watch/sm365421
http://www.nicovideo.jp/watch/sm228632

で、欲しいと思った人はこちら。
book off onlineで、中古が2000円ほど。

ワンダと巨像の検索結果 : ブックオフオンライン
http://www.bookoffonline.co.jp/display/L001,tg=51,q=%2583%258F%2583%2593%2583%255F%2582%25C6%258B%2590%2591%259C

6月頭から3週間ほど、東京の某企業でインターン(アルバイト)をしてきた。
そこでは朝9時出勤、夜10時へとへとな状態で帰宅という生活を経験し、
「社会人になったら勉強する時間はない、今のうちに勉強しよう」と切に感じた。

特に、CS関連の基礎を勉強をしようと考え、SICPを読み始めた。
SICPとはStructure and Interpretation of Computer Programsの略であり、書籍のこと。
アルゴリズムの教科書だと思う。
以下のURLに詳しい解説がある。

計算機プログラムの構造と解釈
http://ja.wikipedia.org/wiki/%E8%A8%88%E7%AE%97%E6%A9%9F%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E6%A7%8B%E9%80%A0%E3%81%A8%E8%A7%A3%E9%87%88

で、SICPを読み進めた結果を、ここに残しておこうと思う。
具体的には、SICPに載っている問題の、僕の解答例を残す。
SICPではschemeでアルゴリズムが解説される。
その流れにのっとって、解答例もschemeで残す。

今日は問題1.17を解いた。
問題1.17は、かけ算を、足し算(+)と、引数を2倍にする関数(double)、引数を半分にする関数(halve)でなるべく少ないステップで実行できるように実装せよ、というもの。

例えば、ステップ数が多くてもよいならば、かけ算は以下のように実装できる。
sample:

(define (* a b)
  (if (= b 0)
      0
      (+ a (* a (- b 1)))))

この方法だと、bの数だけ(* a b)という関数が呼ばれる。
このことをbに線形のステップ数というらしい。

僕の解答は以下。

解答:

define (* a b)
 (if (= b 1)
     a
     (if (even? b)
          (double (* a (halve b)))
          (+ a (* a (- b 1)))
     )
  )
)

(define (double x)
  (+ x x)
)

(define (halve x)
  (halvecmp x 1)
)

(define (halvecmp x y)
  (if (= x (double y))
      y
      (halvecmp x (+ y 1))
  )
)

halveをどう実装するか悩んだ。
もっと短くできるかもしれない。

構造化分析で悩む

6月 28, 2008

システムの持つ機能が書かれたドキュメントを読み、DFDを書けという課題に取り組んでいる。
これが結構難しく、結局昨日今日と2日かかってもできていない。

DFDについては、こちらを参照。
データフロー図 – Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%95%E3%83%AD%E3%83%BC%E3%83%80%E3%82%A4%E3%82%A2%E3%82%B0%E3%83%A9%E3%83%A0

DFDではデータと、データの変化の流れを示さねばならない。
でも僕は、システムをプログラミングした場合の実行順序ばかりが気になってしまい、データの流れが描けない。

普段データの流れを考えずにプログラミングしていることが解って勉強になった。

図書館にあるはずの教科書は借りられていたので、amazonで注文した。
これで課題を終わらせることができればいいんだけど。

教科書は以下。
構造化分析とシステム仕様—目指すシステムを明確にするモデル化技法

http://www.amazon.co.jp/gp/product/4822710041/ref=olp_product_details?ie=UTF8

AppleがiPhone発売に関連してリリースするサービス「mobileme」の紹介ビデオを見た。

いちいちipod touchをMacに繋がなくても済む、カレンダーの同期機能は欲しかった。
ただ、カレンダー同期のためだけに年間9800円は払わない。

どういう仕組みでmobile-meを実装しているのか気になった。
mobilemeを支える仕組みとして、「Push Notification Service」がある。
要は、iPhoneユーザが利用しているサービスに変更があれば、通知サーバに情報が届く。
その情報をサーバからiPhone宛に送るというもの。
今までのPOP/IMAPメールは、自分から受信しにいかないと駄目だった。
それがサーバプッシュになる点が新しいようだ。

Push Notification Serviceについては、以下の記事で書かれている。

iPhoneを見て解った、Appleという会社の”本質を見抜く目” – shi3zの日記
http://d.hatena.ne.jp/shi3z/20080610/1213107165

WWDC’08基調講演まとめ(前編) : 「iPhone 2.0」で何が変わるのか?(3/4) – ITmedia +D PC USER
http://plusd.itmedia.co.jp/pcuser/articles/0806/13/news039_3.html

blog.Winding-life.net iPhone, Push Notification Service, MobileMe
http://blog.winding-life.net/archives/23