一夜明けた日曜日。14時からの成果報告会を控え、会場となる琉球大学工学部情報工学科の大教室前に人が集まり始めた。前日、研修室が閉まるギリギリの時間まで作業を行っていた人もいれば、その後、成果物を仕上げるために自宅やホテルで夜を徹して作業した人もいるようだ。開場前の教室の廊下で、まだ最後の詰め作業を行っている参加者も見受けられる。
14時。成果報告会から参加するメンバーも含め、20名ほどの出席者が大教室に入り、「ハッカソン成果報告会&JavaOne報告会」がスタートした。成果発表に先駆けて登壇したのは、今回ゲストとして沖縄入りした、日本オラクル、Fusion Middleware事業統括本部シニアJavaエバンジェリストの寺田佳央氏だ。
寺田氏は、10月に米国で開催された「JavaOne 2011 San Francisco」で発表されたJavaの最新情報について講演を行った。「Moving Java Forward」をテーマに開催された今回のJavaOneでは、Oracleのリーダーシップによるコミュニティ活動の中で、今後もJavaの世界は、着実に進化を続けていくとのメッセージが発信されたという。
JavaOne 2011のいくつかのトピックの中で、寺田氏が特に力を入れて紹介したのがリッチGUIフレームワークである「JavaFX」に関する一連の発表についてだ。最新のJavaFX 2.0に関して、Windows向けの正式版とMac OS向けの開発者プレビュー版とともに、これをサポートするNetBeans 7.1の開発者プレビュー版が公開されたことに触れ、これらを利用して作られた「ブロック崩し」「ルービックキューブ」などのデモプログラムが高速に動作することが示された。
「従来、こうしたものをSwingで作ろうとするとパフォーマンス面で問題があった。JavaFX 2.0では、GPUをグラフィックレンダリングに利用するPrismドライバの採用で、グラフィック性能、3D表現が求められるアプリケーションの構築が実用的なものになっている。また、マウスのハンドリングも容易だ」(寺田氏)
また寺田氏は、「JavaFX 2.0 Scene Builder」のアーリーアクセス版がリリースされたことも触れた。これは、画面デザインを構成するために、画面内で表示される各種コンポーネント(ボタン、ラベルなど)をドラッグ&ドロップの操作で作成可能なデザイナ向けの新ツールだ。
今後のロードマップとして、次期バージョンのJavaFX 3.0がJava SE 8に標準として組みこまれることや、現時点でリリース時期は決まっていないものの、JavaFXはソースコードの変更を行わずに、iPad上で動作させることが技術的には可能になっている点にも言及。JavaによるリッチUIがより手軽に実現できるようになっていく点に期待してほしいと述べた。
寺田氏は、そのほかにも、Java SE、Java EEを含む今後のJavaの方向性について説明。開発効率の向上やクラウド対応、マルチテナンシー、GlassFish 4.0のPaaSコンソールといった内容に触れつつ、「日本のJava開発者も、ぜひ世界に向けて、技術を発揮していってほしい」と述べた。なお、寺田氏が行ったプレゼンテーションの内容は、SlideShareで参照できる。
寺田氏に続いて、いよいよ「ハッカソン」の成果報告会がスタートした。実際に成果として発表されたプロジェクトは6つ。それぞれの成果物の詳細については、Java KuecheのWebサイトから参照できるようになっている。この記事では、それぞれの参加者のプレゼンテーションから、その概要をお伝えする。
@yasulab氏、@hanachin_氏のチームによる成果物。プレゼンテーションは「週末ものづくり講座:早く失敗し、早く学習する手法の評価と実演」と題して行われた。両氏が主宰する「週末ものづくり講座(Weekend Fabrication)」では、スマートフォンアプリを題材に「1カ月で1〜4つのプロトタイプを作成&評価し、実装する」といった取り組みを行っている。この「実装」「評価」「学習」のサイクルを「とにかく高速に」回す訓練を続けることで、失敗から学習を行う回数を増やし、スキルを高めていくことを目標にしているという。
今回のハッカソンにチームで参加するに当たり、両者は「“自由に”だけだとうまくいかないので、ちょっとだけポイントを共有した」という。そのポイントとは「欲しいもの」と「組み合わせ」である。「欲しいもの」は、自分たちが実際に作ってみたいと思えるテーマ。今回は何らかの「Webサービス」を作る点で合意した。
また「組み合わせ」は、自分たちが興味を持っている何らかの要素を組み合わせること。今回は「視覚化」そして「地獄のミサワ」というテーマ(!)が組み合わされることになった。かくして開発された「Misawagram」は、地獄のミサワ氏のブログ「女に惚れさす名言集」にアップされている1コママンガを、より見やすいUIで一覧できるWebサービスだ。
具体的には、地獄のミサワ氏のサイトから、画像を取得してタイル上にサムネイルを表示。見たい画像を選択するとMechanaizeを使ったスクレイピングが行われる。プログラミング言語にRubyやCoffeeScriptを選んだ理由としては「早く実装するためには最適」との判断によるものだ。
「トリッキーな技術も面白いが、僕らにとっては“早い”ことが最重要。早く作って、早く動いているものを見る。その段階で、より高度な技術で実装するか、それともそこでやめるかといった判断を行い、次に進んでいくことで、より早く学習が可能になる」という。
Java Kueche事務局長である古川氏は、Ruby on RailsおよびアプリケーションホスティングPaaSであるHerokuを利用して、Facebookアプリを開発するという課題に取り組んだ。「タスク管理アプリはありふれているが、Facebookアプリとして作ることによって、Facebookの基本機能である『いいね』『コメント』と組み合わせることができ、そこから新たなツールの使い方が発見できるのではないか」というのが、このテーマを選んだ動機だという。
古川氏は、実際にアプリケーションを作成したうえで苦労した点として、Railsはバージョンにより機能や仕様が変わっているため、Web上で参考にした情報がそのままでは使えないことが多かったことに言及した。例えば、migrationの機能や、Ajaxでのデータ取得などがそうだ。ただ、Ajaxの実装については、最新版では以前よりも楽に行えるようになっており、「日々進化している印象を受けた」と話した。
今回のハッカソンでは、業務システムに関する成果物を発表したチームもあった。「沖縄からHadoopを思う」と題されたプレゼンテーションを行ったこのチームでは、Hadoopを使って分散バッチ処理を行い、医療情報の共有を行うシステムを作成した。
「Hadoopといえば、最近では『ビッグデータ』といわれることが多いが、僕らはそうは感じていない。ビッグデータを業務で扱うためには、Oracleのような商用DBを使う方が安全で、運用コストも安い。オープン系のシステムでバッチを実装する場合、毎回悩まされるのが多重分散起動。Hadoopは、こうした処理に向いている」
今回作成されたシステムでは、架空の調剤情報に関するXMLデータをHadoopによるバッチ処理で統合し、共有と検索を行えるようにしている。こうした医療データなどについては、行政機関による標準化の取り組みなども進んでいるが、「実際の現場では、正規化によるコストに対して、得られる効果が小さいケースも少なくない」という。
「正規化よりも今回の成果物のような『力任せ』が有効なケースは、医療系以外の業界でもあるのではないか。その際、通常のファイル読み込みによる処理ではレスポンスが悪化するような場合に、Hadoopによる処理は有効だろう」
一方で、実運用する業務アプリについては、「しっかりとデータを正規化してOracleに保存するべき」と話した。
當眞大千(@Amothic)氏は、「ランダムに割り当てられ、1つのグループの人数上限が15名」という一風変わったiPhone向けのソーシャルネットワーク/SNS「Mura」を開発した。メンバーによるチャットと日記といった機能が利用できる。似たような試みとして「Path」という50名までのグループ利用制限をしているiPhone/Androidアプリがあるが、このような少人数のソーシャルネットワークへの需要は今後も高まるのかもしれない。
バックエンドのシステムはPHPとMySQLの組み合わせによるもの。iPhone側のフロントエンドを開発するに当たっては、「iPhoneアプリは、開発者側でメモリ管理をしないといけないイメージがあったが、Xcode 4.2からは、その必要がなくなっていた。コンパイラ側で、自動的に必要なコードを挿入してくれる」ことに気がついたという。
Java Kuecheの世話役でもある、琉球大学工学部情報工学科准教授の河野真治氏は、UNIXのメールクライアント「Mail Handler」を利用して、viエディタ上で書いたブログをBloggerとFacebookに同時に投稿するPerlプログラムを発表した。河野氏は、これまでBloggerに投稿したブログを、Facebookに自動コピーするサービスを利用していたが、それが終了してしまったため、その代わりとなるものを「UNIXコマンドを使ってviを拡張することで実現したかった」という。
「一晩で作る」ことを念頭に、コマンドラインからFacebookのノートに書き込む方法を採用。CPANから入手したFacebook APIの対応モジュールをインストールするのに若干時間がかかったが、それ以外は特に問題もなく認証トークンを取得し、コマンドによる自動投稿が可能になったという。
Java Kueche会長の平良氏が発表したのは「u9」(ユーキュー)と名付けられたWebサービスだ。u9という名の由来は「有給休暇を取るときに、スマートフォンから簡単に会社にメールで連絡するためのサービス」だから。UIは正式リリースされたばかりのjQuery Mobile 1.0とJavaの軽量フレームワークとして注目のPlay! 1.2.3を使って構築し、ホスティングにHerokuを使っている。一度、有休取得のメールを送信すると、次回以降は同内容のメールを、同じあて先に2タッチで送信できるようになるという優れものだ。
平良氏のチームはPlay frameworkと「GitHubでの複数人開発」のトライアルというテーマを掲げていた。今回のハッカソンに合わせて、Play frameworkを調べた平良氏は、「和訳サイトもあり、テストに対するサポートが非常に手厚い。普通に仕事にも使える印象だった」と語る。また、GitHubでの複数人開発をサポートする「GitHub Collaborators」については、ToDoリストを管理する「Issue Management」やリポジトリへのプッシュをIRCに送信する「Service Hook」といった機能が役に立ったという。
時に笑いも交えつつ、活発な質疑応答も行われた、沖縄初の「ハッカソン成果報告会」は盛況のうちに幕を閉じた。気温は暖かいものの、17時を回った琉球大学のキャンパスは、すでに夕暮れを過ぎ、徐々に暗くなりつつあった。
報告会参加者の多くは、この後、別会場で開催される打ち上げに向かったようだ。Java Kuecheの「本質」である「開発者同士の交流」が本格的に深まるのは、実際のところこれからなのだろう。残念ながら、翌日に東京での仕事を控えた私は、後ろ髪引かれる思いでバスに乗り、那覇空港へ向かったのだった。
報告会で披露された成果物については、一部がJava KuecheのWebサイトで参照できるようになっている。この記事を読んで興味を持った方は、ぜひそちらも参照してほしい。
@IT関連記事
JavaはクラウドやHTML5、iOS/Androidも取り込む?
JavaOne 2011まとめレポート Java SE 8/9、マルチクラウドに進むJava EE 7、JavaFXと融合しAndroid/iOS対応を目指すJava ME、HTML5を取り込むProject Avatarなど
「Java Solution」フォーラム 2011/10/14
オラクル買収後のJava 7と8、JavaFXはどうなるのか
JJUG Cross Community Conference 2011 Spring レポート Java SE/EEの今後やJRockitとHotSpotの統合など最新情報をお伝えする。そして今後のJavaOneは?
「Java Solution」フォーラム 2011/5/30
次世代Hadoopの特徴は、MapReduce 2とGiraph
Hadoopの父に聞く、HadoopとClouderaの現在・未来 Hadoopの有効な活用方法や事例、市場、米Cloudera社の現状、2012年登場予定の次世代HadoopやCDHについて
「Java Solution」フォーラム 2011/9/15
DI×AOPのこれまで、Seasarの今、そしてSlim3へ…
Seasar Conference 2009 White レポート DI×AOPを軸にしたJavaのWebシステム開発の過去・現在・未来や、日本発の世界標準を目指すSlim3の最新情報について
「Java Solution」フォーラム 2009/4/2
Copyright © ITmedia, Inc. All Rights Reserved.