Category Archives: tech

International OpenDataDay2015 in Nagoya オープンデータ東海 参加レポート

龍一郎 @ 技術担当です。

勉強会とは少し違うけれど、International OpenDataDay2015 in Nagoya/オープンデータ東海
に参加してきました。

0. まとめ

  • オープンデータを提供する側に求められるAPIやドキュメントの使いやすさ大事
  • 時系列データから音楽の自動生成は結構出来るかもしれない、相当の音楽的センスは必要
  • フロントエンジニアすごい

1. イベント概要

どんなイベントなのか引用します。

なんと、オープンデータデイの活動を対象に、名古屋市営バスの運行情報のサンプルAPIを研究目的で Lisra/名古屋大から提供することになりました!(まだ絶賛準備中ですが)
将来の、公共交通の情報がオープンになる事を願って、皆さんでぜひ、新しい可能性を追求してみませんか?

今まで勉強会には参加してきましたが、ハッカソン/アイデアソンと呼ばれるものには参加してこなかったので参加しました。これからも今までやっていないことを見つけたら積極的に参加していきたいです。

当日のタイムテーブルはこんな感じ。

9:30 開場
10:00 開会 (9:30~受付開始)
10:00~10:10 開会・あいさつ(オープンデータ東海 代表/ 名古屋大学 教授 河口信夫)
10:10~10:30 オープンデータに関する話題提供
10:30~12:00 アイディアワークショップ&チーム作成(ファシリテータ 河口信夫)
12:00~13:00 昼食休憩 (各自(グループ単位)でお願いします。)
13:00~17:00 アイディアソン・ハッカソン
    グループ毎に、議論をして、データの活用を考えたり、システム開発をします。
17:00~18:00 各グループの成果発表
18:00 閉会

このうち、特に良かったと感じたアイデアワークショップの内容と、ハッカソンの取り組みの内容について記します。

2. アイデアワークショップ

今回の最大の見どころでした。企画案の決定までのスピードが素晴らしかった。また、途中途中で評価がされていくのも良い点でした。

アイデアワークショップでは、その先のハッカソン/アイデアソンに向けた企画案を決定しました。通常、企画案の作成はそれだけで一日が終わるような重労働です。これを二時間で実施しました。

手順は以下のようにして行いました。変則的なブレインストーミングといった感じです。

  1. 4〜5人のグループを作成し、全員にA4サイズのボードを配布
  2. 1ターン3分程度の個人作業を実施、客員がアイデアを3つ付箋に書き出してボードに貼り付ける
  3. ターン終了時にボードを隣の人に渡す
  4. 2-3を4ターン実施(それぞれのボードには12個のアイデアが書き込まれる)
  5. ボード上のアイデアで気に入ったものに☆マークを付ける
  6. ボードを隣に渡し☆マークを付ける、これを繰り返す
  7. 各グループのアイデアを模造紙にグルーピングする
  8. グループ客員が模造紙上のアイデアで気に入ったものについて、A4一枚に10分でプレゼン資料を作成
  9. すべてのプレゼン資料を◯(良いと思う:何個つけてもいい)と☆(参加したい:一人一つだけ)で評価
  10. 実施する企画の決定

これについて、次の3点が良かったです。

良かった点1 参加が簡単

すべての作業の時間は、短く区切られています。このため、ダメな案が出ても「時間なかったし!」と胸を張れます。言い訳があることで作業に安心して取り掛かれます。

良かった点2 達成感が得られやすい

手順の途中途中に評価が組み込まれていることがポイントでした。これがあったため、途中でも達成感が得られます。

良かった点3 良い評価が得られなくても次のステップで取り返せる

自分の気に入った案が評価されないと結構悔しかったりしますが、そうなったとしても次のステップで再び評価されるチャンスが巡ってきます。

会場では最終的に11の企画案が作成されました。

3. ハッカソン

フロントエンドエンジニアはすごいです。フロントエンドエンジニアの担当領域は直に誰かに触ってもらうところなので、データの使い道を決めて誰かに提供できる形にできるのは素晴らしいことです。

企画への参加

ハッカソンでは「バスで音楽を演奏する」というものに参加しました。今回の企画案で、最も「これなんともならないんじゃないか」と感じたためです。

難しさは「音楽」に様々な意味があるためです。バスから音楽が流れるといったときに、何が流れるのか人によってイメージが違いすぎます。実際、参加希望者の認識はバラバラでした。

  • バスが加速すると音楽テンポアップして盛り上がる
  • 乗車率や時間帯によって流れる音楽のジャンルが変わる (ロック、バラード、J-Pop)
  • バスのドアの開閉や位置情報の時系列データに合わせて楽器から音を鳴らす

というわけで、認識を合わせました。

何をやるか決める

まずは、やりたいことの定義です。最初の定義はこれ。

  • バスに関する時系列データを音の時系列データに変換し、演奏する

最初は音の時系列データとしてSMF形式のファイルを想定しましたが、誰一人としてその仕様に詳しくなかったため頓挫しかけました。そのため、次のような形に。

  • バスに関する時系列データを音の時系列データとして解釈し、演奏する

これでなんとかなりそうになりました。

次は「演奏する」のイメージを合わせました。iPadアプリを数種類試し、結局Polyphonic!のようなあらかじめ決めた音からループを再生するアプリの作成を目指すことになりました。

Polyphonic! iPhone版

ちょっと脱線しますが、このアプリ超オススメです。iPhoneで演奏ってどんな感じか掴めてないのならなおさらオススメです。

また、APIから取得できる情報から、どのような情報を使ってどんな音を鳴らし重ねていくかの仕様も決まり、あとは本当に開発するだけになりました。

ここまでは異常なほどに順調だったと思います。ここからが辛かった。

開発

バスの位置情報を地図上に示す、既存アプリに追加開発しようとしたのですが、そのソースコードにコメントが一切ないと思ったらHaxe由来でHaxeの開発は誰もできない。そもそもJavascriptが満足に書けるエンジニアが1名しかいない(僕ではないです)

結局、Javascriptから音楽ファイルを再生するところから始まり、それで終わってしまいました。

4. 参加しての感想

今回、データを整えてAPIも整えていただいたので、後はフロントをやればよかったのですが、本格的にフロントエンドの知識 (特にJavascriptとAltJS) の知識が不足していると感じました。

フロントエンドエンジニアは偉大です。仕様を決めるところでは全員で議論して手を動かせましたが、実際にものを作るときにはフロントエンドエンジニアしか手を動かせなくなってしまいました。

エンジニアといえば、サーバーやネットワークを提供するインフラエンジニア、データを蓄えて構造化しAPIを整えて公開するといったサーバーサイドも大事ですが、やっぱりフロントエンドも面白いなあと。

目指す方向としては、サーバーやネットワークはクラウド活用、サーバー側アプリはAnsibleなどの構成管理ツールを使ってサクッと立てて、フロントエンドでプロトタイピングをがっつり頑張るといったことができるようになっていきたいです。

あとはやっぱり僕個人ではいい企画は作れないですね。その辺りは五軒家の他メンバーのチカラを借りるところかなと思います。

5. 最後に

短時間で手を動かせることは非常に重要です。短時間で手を動かせたおかげで個人的に成果を挙げられたのと、課題の発見ができました。

また、締め切りに追われている中で濃密に作業できる環境は、なかなか得られないものだと思います。学校でも会社でも、自宅でも得られない時間ではないかなと思います。

個人としては、今回、音楽の自動生成の仕組みを一つ提案できたのは成果かなと思います。一方、フロントエンドの技術や企画力の欠如といった課題もまた発見出来ました。

というわけでまだまだやっていないことが沢山あるので沢山やっていきます。

Enjoy!