# はじめてのハッカソン Vol.3に行ってきました。#hackathon_group

- リンク: https://torounit.com/blog/%e3%81%af%e3%81%98%e3%82%81%e3%81%a6%e3%81%ae%e3%83%8f%e3%83%83%e3%82%ab%e3%82%bd%e3%83%b3-vol-3%e3%81%ab%e8%a1%8c%e3%81%a3%e3%81%a6%e3%81%8d%e3%81%be%e3%81%97%e3%81%9f%e3%80%82hackathon_group/
- 公開日: 2014-05-18T01:12:10+09:00
- 作成者: Toro\_Unit

5/17の土曜日に、[はじめてのハッカソン Vol.3](http://hackathon-beginner.doorkeeper.jp/events/10285)
に行ってきました。
 [みまさん](https://twitter.com/mima_v)にお誘いいただいていた
のですが、前回・前々回は都合がつかずに不参加。で、今回は都合がついたので、参加しよう
と。

勉強とか後回しにしがちなので、こういうきっかけをいただけるのはありがたいことです。
ほんとに。

## チーム

 * [Makoto Ogata](https://www.facebook.com/ogatamakoto0521) さん （マークアップ、
   UI）
 * Toro_Unit （バックエンドとかシステムもろもろ）

デザイナーがいなかったので、ロゴはみまさんに助けていただきました。かわいい。

## 作ったもの

んでとりあえず、こんなものをつくりました。

[http://nekoneko.torounit.com/](http://nekoneko.torounit.com/)

レポジトリはこちら [https://github.com/torounit/catsearch](https://github.com/torounit/catsearch)

### 概要

HTML5 Geolocation api を使って現在地の緯度経度を取得し、その近くで撮影された（で
あろう）猫の写真をひたすら表示します。

あと、検索窓に適当なスポット名（「東京タワー」とか）入れるとそこの近くの猫の写真
を表示します。

という非常に単純なサービスです。

### 実装

API等で取得した緯度経度と、検索文字列「instagram.com%20猫%20OR%20ねこ」をTwitter
の「[search/tweets](https://dev.twitter.com/docs/api/1.1/get/search/tweets)」に投
げます。そして、帰ってきたTweetからURLを取り出しそれをinstagramのAPIに投げて、画像
の情報を取得するという流れです。

instagramの[Embedding Endpoints](http://instagram.com/developer/embedding/)という
APIにURLを投げ、帰ってきた情報から画像IDと取り出し、もう一度別のAPIに投げるという
非効率な実装をしているので、めちゃめちゃ重いです。そんなわけで一度取った情報はサーバー
にキャッシュするようにしています。

いまブログ書きながら、ドキュメント見てたらこの部分無くても良さそうな感じですね。。。。
せつない。。。

検索機能の実装は、Google Map APIで、住所から緯度経度を取得し投げているだけです。
Google Map APIすごい。

#### 実装の経緯

最初はinstagramの[/media/search](http://instagram.com/developer/endpoints/media/#get_media_search)
を叩いて近所の写真をとってこれるし、余裕でしょ！とかテキトーなことを考えてたのですが、
いざやってみると全然猫の写真ないし、paginationはこのAPIに無さそうだし、開始1時間
くらいは「詰んだ？」とかずーっと思ってました。

そしてその後、TwitterAPIを使う方向に切り替えたんですけど、TwitterだとBotは多いし、
名前も検索対象だったりするので、精度的にお話にならなかったんですが、”instagram.com”
を含むツイートのみに絞ると案外、そこそこ目的のものに近い結果が取得できたので、何とか
なりました。追い詰められると人間なかなかがんばれるもんですね。

そんなわけで、instagramの写真をTwitterで探すという、謎な実装になってます。

### 感想

とりあえず、最初のアイデア出しのときに、ただひたすら猫への愛情だけを語り、実装を
ろくに考えずにやったのはまずったなぁと。そんな私におつきあいいただいたOgataさんに
は、大変な感謝です。はい。

また、仕様的にはめちゃめちゃシンプルでコードの量もかなり少ない方だと思いますが、
それでも結構ぎりぎりまで作業する羽目になってました。2時間くらい時間余らせて、そこで
機能追加したいなぁとか最初は思っていたんですけどね・・・・。

自分がアイデアを出してというのも初めてだったんですが、最初の段階で、ディレクトリ
構造やら、ファイルの受け渡し方法だとか、ちゃんと決めておけばよかったなぁとも。2人
のチームでもファイルのマージやらで苦労しました。3人とかだったら崩壊してるかもです
ね・・・。

日々の制作のやり方などを改めて考えさせられます。
 とにかく技術面以外の部分で考え
させられることが多かった気がします。

まぁ反省材料も多かったのですが、それでも14時過ぎから19時半という短い時間の中、実際
に動作するものが作れたのはよかったのかなと。懇親会のビールがとても美味しかったです。

なかなか普段得られない気づきがあって、ものすごい勉強になった1日でした。
 スタッフ
の皆様ありがとうございました！
