2008年4月アーカイブ



名古屋のHALで開催されたThe Student Day 2008にお邪魔してきました。その詳細は以下を参照。



名古屋はねじれた街


駅前にもねじれたオブジェがあるし、HALもねじれている。市議会とかもねじれているんですか?><


Imagine Cup


学校の先生からは「色々展示してあるのようふふ」みたいなことしか聞いてなかったので、まさかここでImagine Cupのソフトウェアデザイン部門の決勝が行われるとは思ってもおらず、会場で聞いてびっくりした。稚拙ながら日本代表をめぐってしのぎを削った3つのチームの作品を要約すると、



  • NISLab: ECOGRID - 消費電力を基準にしたグローバルリモート家電制御システム

  • IAMAS: Reco - Reduce, Reuse, Recycleを前面に押し出したフリーマーケットシステム

  • EMET: moQmo - GoogleEarth + twitter + 時間軸


というような感じ。個人的にはEMETさんのプレゼンが面白かった。ムービーを利用して、演劇のように話すといったもので、こういう手法もあるのだな、と勉強になった思い。


最終的にはECOGRIDが日本代表に座したけど、おれとしてはRecoが好みだったし勝つと思ってた(そのことで賭けをして負けたので、id:yaakaitoに昼飯をおごるなどしなければなりません)。見方によればmoQmoだって全然すごかったし、これはおれなんかが審査したらどれも合格にするしかねーよ、という感じだった。


基調講演


順番が前後するのだけど、Microsoftの佐野さん・名古屋大学の高田教授による基調講演がすばらしかった。


佐野さんのお話は、「デジタルライフスタイル」というテーマ。10年前と比べたら全然違う世界になってるという話に添えて、カーナビに対するAutoPC・Windows Mobile・WebTVなど、MSは未来を見据えた研究をしている企業だということを強く押していた。また、SurfaceやPhotosyncに関しても紹介されており、それらの技術を応用した近未来のライフスタイルをムービーにまとめて上映していた。Photosyncについて少し気になったのだけど、有名な建造物を撮影すると必然的にその場にいた観光客なども映りこんでしまうはずで、そういったものはどうしているのだろう。もしかして3D空間の中に観光客もいたりする?そんなことはないはずだけど。


高田教授のお話は、「車載組み込みシステム」をテーマにしたもの。彼はTRONという国産の組み込み系OSの開発に古くから携わっており、オープンソースで提供されているTOPPERSプロジェクトにおいてはその主導に努めていたそうだ。


自動車の中には数百ものコンピュータが搭載されており、それらは極限状態でも動作しなければならないらしい。-40度~90度での耐久試験をクリアする必要があるという。想像を絶する世界だ。90度で車運転したら死ぬだろ、と思ったけど、気温じゃなくて局所的にならそういう温度にもなっているのかな。


あと知り合いにF1の開発に関わりたいという子がいて、その子的にはKO☆U☆HU☆Nを誘う話だったようだ。


プロコン、学生科学省、InovationAward、関連各社の展示


展示スペースが設けられていて、そこではホールでのイベントの休憩時間中に上記の展示が行われていた。


個人的には今年参加するプロコンのことが気になっていたので、そちらを観に行っていたのだけど、観てみてびっくり、おれが初めて外向きにコードを書き始めたきっかけであるEPOCH@まつやまの本選出場チームのふたりがいた。


弓削商船だと聞いた時点でもしやとは思ってはいたものの、本当にそうだとは思っていなかったので驚いた。もちろん非コミュなおれが女の子に話しかけられるはずもなく(そもそも女子高専生というのはその存在そのものが量子力学的に不明瞭である)遠巻きに展示の説明を行っている彼女らを眺めていた。


いたら、id:amachangさんがいた。何でいるんだろーと思いながら声をかけてみると、なんかid:amachangさんを取り巻いていたっぽい記者の人に紹介していただいた。SoftwareDesignとかWeb+DBとかITmediaとか、普段お世話になっているところの編集者の方々ばかりだったのですごい恐縮してしまった(Web+DBといえば、最新号と間違えてひとつ古い号を買ったためにid:hamachiya2の漫画が載ってなかったという悲しい記憶がありますね)。


Imagine Cupの決勝を見たあと、帰りの通路で良い感じにid:amachangさんと再遭遇したので、恐縮して言い忘れていた「1ksp:4見ました!勉強になったです」的なことを何とか伝えた。そのままエレベーターホール前でわかれるまで話しながら歩きつつ、id:ranhaをべた褒めしていた。


まとめ


id:lonlon2007やクラスメイトなど、知り合いがこぞってImagine Cupに出たいとか言い出しているので、もしかしたら参加することになるかも。そのときのことを考えても今日はとても勉強になる一日だった。


撒いた種の芽がいつ出るのかはわからないけど、それまでただ待つだけじゃダメ。水をあげなきゃ種は枯れちゃうから、おれは自分の撒いた種に水を与えながら、また別なところで種を撒きたい。そうすれば、そのうち毎日のように花が咲き続けるようになるはずだ。




OpenIDにはモードというものがある。当然ながらそれぞれ別な役割を果たす。


と思っていたら、それぞれ連動するような感じらしい。


参考: Consumerの実装を知り、OpenIDを使ってみよう - @IT



  1. associate

  2. checkid_immediate

  3. checkid_setup

  4. check_authentication


1. associateモード


associateモードは、コンシューマとIdP*1との間で共通鍵を共有するためのフェイズ。


2. checkid_immediateモード


即座にIDの認証を行う。Ajaxで利用。


3. checkid_setupモード


リダイレクトページを解して認証。


4. check_authenticationモード


associateモードを経ていないときに行う。


詳しくわからない!

明日も悩みそう


タグ: [徐々に増えなかった]




*1:OpenIDプロバイダのこと




今作ってるサービスの認証をOpenIDを使っておこなおうと思ったので、調べてみた。Ruby gemsにruby-openidなるライブラリがあるようだけど、せっかくなので自前で組んでみようと思った。


まずOpenIDの仕様書。


OpenID Authentication 1.1


英語なのでこのまま読もうかと思ったのだけど、まず和訳を探してみる。


OpenID Wiki


発見!と思ったら、訳してあるのは見出し・目次の一部と概要だけだった。ので訳されていない部分を訳しながら読むことにする。訳がひどかったり、理解が誤っていたら教えていただけるとすごくうれしいです。括弧内は原文。


OpenIDによる認証の流れ



  1. HTML文書をアイデンティファに変換(Transforming a HTML Document Into an Identifier)

  2. 未認証IDの送信(Sending a Claimedd Identifier)

  3. 認証URLを取得(Cosumer Site Fetches the Identifier URL)

  4. IDの確認(Comsumer Verifies the Identifier)


1. HTML文書をアイデンティファに変換


変換とはいうものの、IDとなるURLに存在するHTMLのhead要素内に次のように数行書き足すだけのよう。



<link rel="openid.server" href="http://openid.example.com/">
<link rel="openid.delegate" href="http://exampleuser.livejornal.com/">

おれのアイデンティファでは以下のようになっている。



<link rel="openid.server" href="http://www.openid.ne.jp/user/auth" />

つまり、認証用システムの存在するURLをlink要素で指定するということ。コンシューマは、これを読み込んだ先のシステムで認証してもらうことになる。普通OpenIDによる認証に対応したサービスを作ろうと思ったとき、それはコンシューマを作ろうとすることなので、この部分は直接は関係ない


認証を委任する(Delegating Authentication)

この部分がよく理解できていない。あとでしっかり読む。


2. 未認証IDの送信


で、実際にOpenIDを利用してログインするためのフォームを設置する。



<form method="post" action="/">
<input type="text" name="openid_url" id="openid_url"/>
<input type="submit" value="OpenIDでログイン">
</form>

こんな感じでいいみたい。入力ボックスopenid_urlの左端にOpenIDのロゴを配置することが推奨されている。Ajaxで処理するので、action属性には何も指定しない(らしい)。



  • ユーザはアイデンティファURLに"http://"やスラッシュをつけるべきではない

    • つまりおれの場合は"tnzk.openid.ne.jp"となる



  • コンシューマはアイデンティファURLを(リダイレクトをサポートしたりして)正規化しなければならない。最終的に正規化の済んだものがユーザのIDとなる


3. 認証URLの取得


前出のフォームに入力された未認証URLにアクセスし、そのhead要素に含まれるlink要素の内、rel属性が"openid.server"であるものと"openid.delegate"であるものを取得する。後者は必ずしも存在しない。



  • コンシューマは(LWPx::ParanoidAgentのような)HTTPライブラリを使うことを推奨される

  • コンシューマはデリゲーション(委任)の実装をしなければならない


4. IDの確認


コンシューマはURLをOpenIDプロバイダのcheckid_immediate(checkid_setup)URLに組み立て、ブラウザをそこに移動させる。飛んだ先のURLで認証されるなりしたあと、"openid.reutn_to"に指定されたURLに戻ってくる。




ずいぶん前、MicrosoftによるYahoo!の買収話が囁かれはじめ、その話題が騒ぎを呼びつつあった頃、小飼弾氏はそのブログでこんなことを語っていた。



Yahooに足りなかったもの、それは「勝つまで勝負をやめない」という姿勢。これならMicrosoftは世界で一番持っている。それが極彩色で現れたのがブラウザー戦争(satoshiさんは勝者側の当事者:-)。まだ「勝った」とまでは言わないまでも、そこまで持って来たのがXbox。


404 Blog Not Found:そろそろMBY(Microsoft to Buy Yahoo)について一言いっとくか

さらに氏は、同様のことを同エントリにて『「勝つまでやめない」ミーム』として表現している(知名度の低い単語なので添えておくと、ミームとは文化のような意味を持つ)。


困ったことに、ここ数日「勝つまでやめない」という言葉を何度も何度も思い出してしまう。別にそんなつらい状況に追い込まれているわけではないんだけど、自分がどんなスタンスを取るべきなのか考えたとき、まっさきに憧れとして思い浮かぶのがこの「勝つまでやめない」という姿勢だ。


元々おれはずいぶんとネガティブな人間で、かなり陰湿なタイプだった覚えがあるのだが、ある時期から急にポジティブな視点を持つようになり、今も主張している「やればやっただけ評価されるし力になる」という持論を抱きはじめた。ある時期とはいうもののそれはハッキリしていて、おれがWeb上で活動をはじめた時期と概ね一致する。そう考えると思想が変化した理由にも合点がいく。あくまで経験ベース、ということだ(愚者は経験に、賢者は歴史に学ぶというが、どうやらおれは前者みたいだ)。


ポジティブな思想を持つ人間は、同じくポジティブな人間と交わったときに大きなエネルギーを発揮することができる。そういうときには成果が生まれやすいし、得るものも多い。


ところが、ネガティブな人間と関わると、足を引っ張られるとかならまだいいんだが、逆にネガティブな人間のほうを無理やり引きずってしまい、ネガティブな人間の心に傷をつけてしまう場合がある。ネガティブ思考の人間からしてみれば、ポジティブ思考は「ウザい」わけだ。


また他を見れば「ポジティブ教」として揶揄されている部分もある。これは言葉の出自には自嘲的意味合いを含んでいたようだけど、現時点では非難に使われることも多い。


そういうわけで、ただポジティブなだけなのもマズいかなと思うようになった。もちろんポジティブシンキングのメリットは理解しているし、おれ自身そうありたいのでそれが通じる相手にはポジティブにいこうと思うのだけど。


そんなことを考えはじめてから数日、「勝つまでやめない」ミームのことを思い出した。


勝つまでやめない、というのは尋常じゃないポジティブさを持っているのだけど、その一方で現実を見据えたネガティブさ、というかシニカルさのようなものを多分に含んでいる。勝つまでやめないということは、負けてしまうことを認めているんだ。一発で何もかもうまくいくはずがない、どうせ最初は負けてしまうさ――そう考えるところから、「勝つまでやめない」ははじまる。


負けて、負けて、負けて……ずっと続くとしても、それが有限であれば、いつか勝てる。最初は絶対無理だと思うから、それなりのことができればいい。あとはそれを続ける。一気に勢いを出してもいいし、だらだらと続けてもいい。「勝つまでやめない」前提の上では、それらの差は時間の問題でしかない。


だからネガティブな人も、ある程度共感できるのではないかな、と思う。


いや、でもこれは違うな。ただ単に「お前がネガティブだろうがなかろうが、おれはポジティブを貫き通すぞ」って話に言い訳をつけただけだな。


このアーカイブについて

このページには、2008年4月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2008年3月です。

次のアーカイブは2008年5月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 4.32-ja