題名:Java Diary-96章

五 郎の 入り口に戻る
日付:2009/7/31
目 次に戻る


Goromi-Tube Part2

し ばらく”再現できたサンプルコード”をみて喜んでいたが、そのうち飽きる。というかこれをみて喜んでいる場合ではないのだ。そもそもこのコードはどうなっ ているのだ。そこからAction ScriptとFlex3(未だにこの言葉の関係がどうなっているかわからないのだが)を学びつつ、手探りでサンプルコードを変更していく。

そもそもYouubeからは動画のサムネイルが何枚とれるのだ。今まで何度かGoromiのYoutubeへの適応を考えた事があった が

”サムネイル一枚じゃ足らないし”

と 思っていた。しかしYoutubeのAPIを調べると、動画にもよるが複数のサムネイルデータが存在しているようだ。これならいけるかもしれない。最初の サンプルプログラムはYoutubeからのデータ取得、解釈をすべてFlash内で行う物だ。その機能を適当にサーバープログラム(Java+ Google App Engine)に振り分ける。割り振った機能を結合するためには、FlexプログラムとJava Servletの接続を考える必要があり、ここでまたしばらく時間が経過する。ごにょごにょやっているとようやくつながる。

やれうれ しや、ということでそれらしき動画のサムネイル+タイトルが表示できるようになる。しばし悦に入るが問題は山積みだ。それまではVBoxという部品を使っ ていた。これに放り込めばなんとなく縦にならべて表示してくれるのだ。次はこれをスクロールさせ、かつはみ出したものは消さなくてはらない。

きっとこんなプログラムどこかに存在しているだろう。そう思って調べれば写真のサムネイル画像を横に自動的にスクロールしてくれるプロ グラムが見つか る。これをコピーすれば問題解決。そう思ってサンプルをダウンロードするが動かない。よく見ればそれはFlex2で作られたものであ り、私が使っているのはFlex3なのであった。両者にどのような違いがあり、どのように修正すれば動くかなど調べる気はさらさら起きない。ではどうす る。

関連情報をあれこれ調べていると、VBoxに項目を追加するとき、削除するときかっこいいアニメーションをつけられる事を知る。もうこ れでいいんじゃなかろうか。そう自分に言い聞かせようとするが、現実は欺けない。もっと自由に自分が作った部品を動かせないとどうにもならないのだ。つま りそれまで避けていた

”Flex上で画面部品を作るとはどういうことなのか”

”それらを自由に動かすためには何が必要なのか”

を腰をすえて勉強する必要があるということ。しかし仕事の合間に”腰を据えて仕事と関係ない勉強”をすることが可能だろうか。

うーん、とうなっているとチャンスが訪れる。前の会社を辞めてから学会というものに縁遠くなっていた。客商売だからお客様の都合 に合わせることが必要。iPhone に届くメールを見て

”うげげげ”

と うめく日々である。しかし以前よく行っていたWi2という学会が土日に開催されることを知る。これだこれだ。これに行かなくては、というわけでさっそく参 加申し込み。仮に会社の許可が下りなければ、自腹で参加するつもりだった。貧乏暮らしとはいえ、滅多にあることではないから それくらいなんとかなる。

などと身構えていたのだが、あっさり会社の許可が下りる(後で気がついたことだが、これは間一髪のきわどいタイミング だった)しかし本当の難関はこの先にある。本来だったら家事にはげまなければならない土日に家を空ける事に関して奥様の許可を得ねばならぬのだ。おそるおそる願い出ると幸いにも 許していただける。というわけで私は勇躍広島に向かう。会場は4年前に Goromiを発表した広 島市立大学である。今回は発表しないから関心がない発表の間は、あれこれ調べていれば良い。そもそも新しい部品を定義するとはどういうこと か。できあいのものではなくアニメーションを行うにはどうすればよいのか。そんなことを言っていられない面白い発表もあるが、そうでないものも多い。とい うわけでこの出張中におおよその構想は固まった。

それと同時に久しぶりにいろいろな人と会い、、そして自分が何かを発表しなくては、という 意欲が再燃した。この一年お客様の顔色をうかがい”やらなくてはならないこと”を右から左に移していた。今はそうやって日銭を稼いでいるのだが、自分が睡眠時間を削ってでもやりた仕事はではない。(”やりたくはない”が”やる”のだが)懇親会でよっぱらったあげく

”いや、次の研究会では新作を発表しますよ。わはははは”

とわめきちらしていた気がする。

そ うは言った物の正気に返るとはてこの状況でそんなことが、、という気になるのだがそれはここでの主眼ではない。帰ると少しずつプログラムを組み立て始め る。最初はおそるおそるクラスを作り、それを画面上で動かす。やっていることはJavaのプログラムにきわめて近くなった。描画関連処理をFlexが勝手 にやってくれることくらいが違いか。少しずつ作っていくにつれ既視感が何度も訪れる。ああ、そういえばGoromi-TVでも同じような問題に突き当たっ たなあ。しかしFlexのほうがJavaより後にできたシステムなので、少しエレガントに解決できる部分もある

と かなんとかよろよろしながらプログラムは組み上がり始める。作っていくうち、TubeLocなるYoutube動画のFlexイ ンタフェースがある事を知る。それまで使っていた動画再生には、Youtubeの開発IDなるものを入れる必要があったのだが、こちらはない。問題も 多いらしいが採用事例も多い。ええい、こっちにしてしまえ、ということで乗り換える。

またそれと時を前後して、意味もなくくっついていた元のサンプルプログラムのソースも全部切ってしまう。例によって”本当にこれ外して 大丈夫かな”と心配になるのだが、思ったより順調に立ち上がる。とかなんとかやっているうち

”これは一回サーバーにアップロードしたほうがいいのではないか”

と思い出す。Eclipse上で行えばそ の操作は驚くほど簡単だ。よしやってみよう、と思うとエラーがでる。うげげげえ。

こ れはどうしたことか。何か設定のxmlファイルで文句を言われていることはわかるのだが、それが何かはわからない。(後から考えれば)無駄な対処両方(と 思えるもの)をやって時間をつぶしたあげく、あきらめる。しばし時間がたったのち問題のxmlをみればどう考えても理屈があっていない。というか Google先生にお伺いをたてたところ、似たようなxmlファイルがでてきたのだが、構成が違う。私のが間違っている。

そこを直すとすんなりアップロードできた。そもそもFlexで書いたアプリケーションってどうやってアップロードすればいいんだ。最初 にやってみたが、何かがエラーになる。またもやGoogle先生にお伺いをたて、crossdomain.xmlとかいうものが必要である事を知る。追加 する。どうやら動き始める。問題は山積みだがとにかく構想の第一歩に到着する事はできた。

後で日付を調べれば(こういう記録が全部残るのが、Google App Engineのありがたいところだ)最初にアップロードしたのは7月13日。しかし例によって例のごとくここから公開までの道のりは長いのであった。

前の章 | 次の章


注釈