題 名:Java Diary-82章

五 郎の 入り口に戻る

日付:2006/3/31

目次に戻る


Goromi-TV Part17 WISS2006準備

というわけで講演も無事終わると今度は今年のWISSが気になってくる。気にしたところでGoromi-TVで書くしかないのだ。ごそごそ書き出 す。未踏の報告書を参考にするが、そのままでは論文にならないので一カ所だけ「ユーザ評価」をやった。

何をしたかと言えば、「何か別の」という機能を選んだ時の番組情報の出し方である。TVを見ているときあてどもなくチャンネルを切り替え続けることがあ る。少なくとも私はよくやる。何 だ、とは言わないが別のを見せろ、とユーザは言っているわけだ。それは心情として理解できるが、言われた方にすれば

「”別の”って、何を出せばいいのか」

と問いたくもなる。しかしユーザはただぼんやり「別の」というだけである。

というわけでこの操作が選択されたときの出し方を2種類作ってみた。一つは全くランダムに選ぶ物。もう一つは「今まで”別の”と 言われ、捨てられたもの」からなるべく異なるものを二つ選び、あとはその二つに似たものを並べる方式だ。前者はばらばらのものが表示され、後者ではある程 度そろった番組が表示される。

なぜこんな機能をつけたかと言えば、この「別の」と言われたときに出てくる物が自分で気に入らなかったからだ。ついでに言えば私はこの「完全にランダム選 択」というのを毛嫌いしていた。なんだか操作している意味がないような気がしてくるのである。というわけでこの2種類の出し方を両方経験してもらい、どっ ちがいいか評価してもらう。私と同じように「そろって出てくる方がいい」という意見が多ければしめしめ、という構想である。

というわけで近くに座っている人間にGoromi-TVを使ってもらう。もともとてきとーに使うことを想定したシステムだから仕事の傍らで使ってもらう。 するとみんな簡単な説明でちゃんと使ってくれる。これで「受容度」はOKだろう。30分ほど使ってもらったところで「別の」のアルゴリズムを切り替える。 最後に「どっちがよかったですか」と聞く。

結果は私の期待を裏切るものだった。二人は「そろって出てくるほうがよい」と答えた。残りの3人は「ランダム選択がよい」と言わなかった。「何か変 わったんですか?」と言ったのだ。つまり変化に気づいてもくれなかった。無視である。TV番組を前にしたユーザとはここまで何事も気にしないもので あるか。がびーんとなるが正直に論文に記述する。悔しいから、「このようにユーザの要望は適当なので、アルゴリズムに凝ってもしかたがないよーん」と簡単 な選択アルゴリズムを使っているいいわけに利用する。

といったところで論文を書き終える。去年と比べると作り上げ労力というのは半分くらいですんだように感じる。その分

「こんなので通るだろうか。」

とどうにも自信がない。

ビデオ作成で苦労するのもいつものことだが、これまた去年苦労したぶんだけ多少スムーズにはなる。会社の許可は一瞬で得られた。去年恥ずかしい誤字脱字を 指摘されたので、今年は提出前に他人に読んでもらう。するととても恥ずかしい誤字脱字がたくさん指摘されるが、論文のReviewerに指摘されるよりま しである。

というわけで準備はできたが、どうにも内容が無いように思う。などと提出間際になって言ったところでしょうがない。締め切り前に提出してしまう。すると去 年よりすでにたくさんの論文が提出されていることを知る。あちゃー、倍率高いかしら。これはますます駄目かもしれん。まあ駄目だったら同じグループの人間 に出張してもらいどんな発表がされたか教えてもらえばいいか。

などと考えているうち日は過ぎていく。今年はWISSのサイトに「査読結果通知」の期限が記されていなかったから去年のように「シュレジンガーの大坪」状 態になることもなかった。時々頭に論文のことが顔をだすがすぐ引っ込む。そんなある日会社に行くとメールが届いている事を知る。

「WISS 2006論文審査結果」

と 題名がついたそのメールはめでたく論文が査読を通過したことを知らせるものだった。あらうれしや。去年ほど自信もなかったがなんとか通ったか。内容を見て みると今年は発表時間30分もらえるらしい。内容の多さから言えば去年のほうが上なのだが、ここは長い時間をもらえた事を素直に喜ぼう。問題は何をしゃべ るかだ。今までの発表だのなんだのは15分という想定でやっていた。となると少し内容を足さなくてはならない。

と いうわけで仕 事が一区切りついた11月の6日からプレゼンの準備を始めよ うとする。プレゼン資料を作ることもさることながら、プログラム自体も改善しなければならない。少なくとも2月の最終発表から「改良しましたよ」というと ころを見せないと。

ま ずやったことはレンタル品のMac Book proの上にGoromi-TVを移すことである。だって、Intel macってはやいんだもん。プログラムでどんなに工夫を凝らしたところでCPUの力には勝てない。人前で見せるのであれば、なるべくスムーズに動いている ところを見て貰いたいものだ。

と いうわけでMac Book ProでGoromni-TVを立ち上げてみる。その瞬間愕然とする。表示される動画が青くなっているのだ。実はこの現象に出くわすのは初めてではない。 アイディアコンテストでiSightからJavaで画像を取り込むというのをあれこれやっていた。PowerBookでうまくいった、と思いデモ機である Mac Book Proで立ち上げたとたん、画面が青くなったのだ。

泡 食ってGoogleの神様におすがりす ることしばらく。細かいこ とは知らないがIntel CPUとPower PCでエンディアンが異なるところから生じる問題とわかった。(エンディアンが何かと言えば、卵をとがった方から悪いか、丸いほうから割るか、というつま らない問題である。しかし コンピューターはつまらないことでもつっかかるほど融通が利かないのだ)ありがたいことにその問題を回避するコードもちゃんと書かれている。やれうれし や、というこ とでその場は収まったのだが、また同じ問題がでてきてしまった。

うげげげ、と思うがまだ時間はある、と考え直す。 そうだよ。どちらに しても今の動画表示方法では時々異常終了しちゃう問題が残ってるんだからこれを機会にちゃんと直そう、ちゃんと。

と 思いまたもやあれこれ検索を始める。すると以前動画表示方法について調べたときとは違うコードが公開されていることに気がつく。加えてこの新しい方法を使 えば、公開されていた「青い画像」を回避する方法も使えそうだ。というわけでさっそくその方法を取り入れてみる。しかし画像が表示されない。何がおかしい のだろう。あれこれいじくったあげく、また別のコードにたどりつく。先ほど参照していたコードとは少し異なるがなあ、と思いながらそのコードを丸写しす る。するとちゃんと動画が表示される。よかった。これでなんとかなるだろう、と安堵して家にたどり着いたのが11月9日。

翌 日会社に行く と、外付けハードディスクを接続し、「どれくらいの時間動画を表示していられるか」の試験を始める。昨日テストプログラムで表示させていたときは結構長い 間安定して表示されていたのだ。画面をつつくと動画がでてくる。飽きてきたので別の動画に切り替える。すると数十秒後に見慣れたダイアログがでる。プログ ラムは終了しました、というやつだ。

うげげげげ。これはどうしたことだ。再びプログラムを立ち上げる。今度は さっきより早くプログラムが異常終了する。何度やっても同じことだ。動画を切り替えるとすぐにプログラムは終了してしまうのだ。

が びーんとなったところで出張に行く時間になった。しかし電車の中でも少しでも間があればコードを修正し、あれこれ思いついたことを試してみる。しかし動画 はがん、として切り替わってくれない。絶望的になり、以前のバージョンを立ち上げてみる。するとちゃんと切り替えられる。コードを見比べどこがこの差異を 生んでいるのか、と頭をひねりあれこれ修正する。しかし動画は快調にお亡くなりになってくれる。


がっ かりして決 意する。動画表示関連を、 丸ごと以前のコードに戻してしまおう。コードが汚かろうがなんだろうがとにかく動いてもらわないことにはなんともならない。当初の計画では、さっさとプロ グラムの改修を終え、プレゼン準備にかかるはずだったのに、プレゼンに関してはなんの準備もできていない。というわけで以前書いたコードからクラスを丸ご ともってくると、新しいコードに埋め込む。不整合がでれば新しく書いたコードの方を変更だ。さて、どうなるかと恐る恐る動画を切り替えてみる。するとちゃ んと動くことがわかる。やれうれしや。これでなんとかデモはできそうだ。というわけでその日の残りは心置きなく他のあれこれをする。その日は休日出勤で研 究会にでていたのでIntel Mac上での確認はできないが明日会社に行ったらさっそくやろう。IPAXの時には青くならずに表示されていたから、これなら大丈夫なはずだ。

そ う思って翌日朝一番に変更したプログラムをMac Bookに入れる。つんつんと動画を再生すると青い。青いのだ。これはどうしたことだ。5月の時点ではちゃんとMac Book Pro上で表示されていたではないか。そのころ使っていたと思しきバージョンをハードディスクの中から探し出す。うんうんそうだよね。別に何も変わったこ とはしてないよね。しかし、画面は青いままだ。

絶望的になった私は再びプログラムを変更し始める。前述した「回避 手段が使えるコー ド」をなんとか 使い始める。すると確かに動画は普通の色で表示され始めた。そうだよ、これでなくてはいかんのだ、と思った瞬間プログラムは異常終了する。いや、元のコー ドだって異常終了するのだが、あまりにそれが早くないか。

というわけで八方ふさがりになった私はわらにすがり始 める。この「青い動画」の 問題はAppleも認識しているかもしれない。となれば最近のアップデートで修正されていたりしないだろうか。使っているOSのバージョンを見てみるとか なり古い。Quicktimeのバージョンも古い。というわけで両方ともアップデートする。どうかAppleの中の人がバグを修正していてくれますよう に、と祈ることしばらく。動画を立ち上げてみると見事に本来の色で表示された。これでほっと一息である。もう動画の再生については触らないことにした。と いうことは時々異常終了する問題は残したまま、ということだが、とりあえず動いているものを触るのはいやである。途中までやっていたUndo機能の実装に 取り掛かる。これも完璧にUndoすることを目指せば、その部分の設計をちゃんとやり直す必要があるのだろうが、もとが「適当にTVを見る」プログラムだ から「なんとなくUndoできたかな」というレベルでいいことにしてしまう。


というわけでプレゼンテーションの ほうに取り掛かるわけだ。 アウトラインは以前から使っているものからスタート。最初は全部作り直そうかと思ったのだが、前のものを自分で読み返してみるとなんだかこれでいいような 気がしてきた。しかし今回は初めて発表時間が20分になるし(残りは質疑応答)論文には新しいところも書いているので、そこは反映しなくてはならない。
と かなんとか言いながらも、プレゼン資料を作り上げ自席でぶつぶついいながら練習してみる。終わるとどっと落ち込む。つまらないのはいつものことだが、12 分で終わってしまう。あと8分はしゃべらなくちゃ。いやしゃべるネタはあるのだけど、聞いている人の集中力を20分持たせることができるだろうか。この日 は15日。もう2週間ちょっとしかないのだが。
16日は朝からJavaのプログラムを作 る。何をしているかといえば、プレゼンの中で使うアニメーションを作りたいがためだ。アニメーションならFlashというのが相場だと思うが、なぜそれを つかわんのか、と問われれば

「使 い方すっかり忘れて、うまくできない」

と 答える。一度しか使わないアニメーションにJavaプログラム書くのは同考えてもばかげているのだが、とにかくFlashは言うことを聞いてくれない。 作ってしまえ、とごりごり書く。最近いじっているプログラムを少し修正するだけだから楽だ、と自分に言い聞かせることしばらく。プログラムは動き始めた。 あれこれやっていると、プログラムで作ろうとしたことがそれほどばかげていなかったのではないかと思い当たる。思い通りの動きをさせようとすると、結構い ろいろなパラメータをいじらなくてはならない。その手間を考えればFlashよりもJavaのほうが(最近慣れている分だけ)楽だったかもしれない。
やっ と動きができたが、それをムービーにするところでまた散々躓く。しばしの苦闘の後、構想どおりの動きができるよういなんったので気にしないことにする。そ の ほかにもあれこれ作りなんとか最初のバージョンが形になりだす。しばし試験的にスライドを動かしてみる。それを後ろから見ている人が

「言っちゃ悪いけど、 無駄なことに力を注いでいるような気がする」

とコメントする。無駄なこと。確かにそうかもしれん。しかし人前でしゃべるチャンスをも らったのだから、できることはやらなくては。そう思ってまたあれこ れいじりだす。
それと平行しながら「動画再生中にいきなり終了する」問題に取り組み始める。取り組みというと聞 こえはいいが、幸か不幸か めったに落ちなくなったので、ひたすら裏で動画を再生し続けるのだ。新しい方式は2時間くらいで終了した。Windows上で動かすと死んだ場所の情報が 取れるのでありがたい。今度は元の方法で動かす。すると4−5時間動かしてもびくともしない。トラブルとはこういうものだ。こちらが解析してやろう、とあ れこれ準備して待ち構えているとおきない。しかしなあ、いったい何が昔と違うというのだ。テスト用に使っている「荒川静香が金メダルを取ったときの演技」 が終わる前には必ず異常終了していたのに(こう書いてみると、”コンスタントに異常終了”ってなんだか自己矛盾をきたしているきがするが)やはりこれには こだわらないことにしよう。
とかなんとかやっている間にだんだんプレゼンテーションのほうは収束に近づく、、はずだった。少なくとも 29日まで は。あらかたまとまってきたのでさて練習ということで朝誰も来ていない時間帯にべらべらしゃべる。時間は22分。指定は20分プレゼン、10分質疑応答 だっ たが、まあ2分くらいで誰も文句はいわんだろう。しかしそれより深刻な問題に気がついていた。面白くないのだ。

前の章 | 次の章


注釈