smellman's Broken Diary

クソみたいなもんです

伊豆大島ハッカソン&マッピングパーティーに参加してきた

伊豆大島ハッカソン&マッピングパーティーに参加してきました。とは言っても僕は主催者側のスタッフを兼ねての参加です。
島内、島外の参加者でハッカソン1チーム、マッピングパーティー3チームを作って行い、僕はハッカソンチームに参加してコーディングを担当しました。
話し合いの結果、作成をするのは「島から見えるあの山はなんだろう?」というのをわかりやすく見せるARアプリとなりました。
元のデータは伊豆大島ジオメディア・ミュージアムにタグを付けて位置情報をつけたページをしてもらいました。この作業は大島の人たちとこの案件の担当されている国交省の方とMRIの方たちが担当されました。伊豆大島ジオメディア・ミュージアムではLocalwiki APIで位置情報とかページの内容とか取得できるのでそれを応用しました。あ、伊豆大島ジオメディア・ミュージアムは僕がセットアップしてます(案件だもの
開発は僕と弊社社長の関さん(@hal_sk)と今回島外から来てくれた元エンジニアでフォトグラファーのくま害さん(@tinbotu)で分担しました。ぶっちゃけ破滅クラスタです。
まず僕とくま害さんでとりあえず開発をスタートさせます。僕がWikitudeをベースにアプリの下地をつくりながら、くま害さんに本業を生かしてアプリの基本素材の作成をしてくれました。
まず、関さんがデータ作成チームと調整役を担当して、その後開発に合流してもらいました。
関さんが合流してからは関さんがARのメインを、僕はAPIの拡張とネットワーク周りとARを、くま害さんには使えそうなAPIとかを調べてもらってました。
僕らの成果としては、こんなものが作れました。

会場からARで表示したとこです。
二日間の成果としてはすごく良かったと思います。
ただ、個人的には技術者として結構凹むところが多かったです。
一番きつかったのがネットワーク周りです。APIで取ってきたJSONが文字化けするんですよ。しかも、叩いたタイミングによって文字化けする箇所が違うというオマケ付きで。Transer-encoding: chunkedでかつLengthが無いとどうもiOSのライブラリとか、AFNetworkingとかがだめみたい。なので、見せたアプリにはcurlで取った奴をsedで加工したのを仕組んでおきましたorz
エンジニアとしてまだまだだなぁと思いました。
個人的な成果としてはLocalwiki APIの拡張がよかったです。こんなのを作りました。
https://github.com/Georepublic/localwiki/commit/55d84173c42c725e37cefc42d72d4d97baa67f30
コード見てもわかりづらいのですが、Localwiki APIでは地図取ろうとしてもpageがAPIのurlだけで、取得した地図が30件データがあると、再度30件APIを叩く必要があるのですが、それはきついのでmap_with_pageというAPIを作って一気に取れるようにしました。実はコレ、仕事上でも使えるので一石二鳥でした。
さて、今これ書きながらまたビール三本目突入してぐでんぐでんなので、ちゃんとしたレポートは片岡さんが趣味のインターネット地図ウォッチで書いてくれるでしょう!
というわけで、楽しかったです!