Mashup Award 10 でテーマ賞を頂いた作品の作業ログさらす
なに作ったの?
KOKOROTTE という作品を作りました。下記のAPIを利用して、ハンズネットの商品を「感情」で検索出来るサービスです。
- ハンズラボ株式会社様のハンズネット商品情報
- 株式会社NTTデータ様のなずきSA
なに貰ったの?
ハンズラボ株式会社様のI ♥Shopping賞を頂きました!
まぁ……お察しの通り、この賞を狙い撃ちにいった作品でした。ちなみにテーマ賞は5万円とのことで、東京までの旅費を稼げた格好となりますw
構成まとめ
作業ログ
10/22(水)
- 普通に仕事
- 昼休みにひらめく
- ハンズの商品情報をなずきSAに噛ませてみて、コンセプトが実現可能かをしらべる
- なんかいい感じの結果になった。いける!と思ったのはこのあたり
- ハンズ商品情報のAPIとかないのか? と思って調べる
- ない
- 主に下準備
10/23(木)
- 午後は夏休み(遅い)
- 本来なら明日が提出日だったが、10/26(日)まで伸びた。
- (ぶっちゃけ今回一番ついてたのがコレ。)
- さくらクラウドのクーポンを貰ったので、それを使ってCentOSサーバを建てる
- デプロイとか考えたくないと思い、サーバにrootで入ってそのまま書くことに(ひどい
- githubにおいてあるdotfileをペイッと持ってきてゴリゴリ書き出す
- 言語はnode.js。今回はrubyとかでもよかったかも、でも時間ないから一番なれてる言語で。
- 時間ない範囲でクラサバ両方書くことになったら、やっぱ言語の切り替えいらないのはありがたい。
- なずきSAを叩くコードを作成、完成
- hands.net用のクローラーを書きだす
10/24(金)
- 1日夏休み(遅い)
- データをどう保持するか悩む
- とりあえずあんまり使ったことないけどmongoをインストールしてぶっこんでみる
- いい感じに記事データを保存できた。
- mongoよくしらないけど結構無茶なクエリでも行けるんでしょう? ってことで何も考えないことにした
- (今思うとmongoの選択は大正解だった。一番なれてるのはMySQLだけど、nodeで趣味レベルのもの作るならmongoだわ)
- handsクローラ回して記事を取得、mongoにデータを貯めつつ、mongoからデータを取り出してなずきSAを叩いて感情データ付与してupdateするような流れを作る
- クローラと感情データ取得はそれぞれ別プロセスで回す
- なずきSAのほうが圧倒的に速度が早いので、なずきは定期的に手動で叩くことに笑
- クローラと感情データ取得はそれぞれ別プロセスで回す
- handsクローラをforeverで回して眠る
- 取得速度は1ページとれたら次の1ページという感じにしておいた(並列しない)
10/25(土)
- 起きたらクローラが途中で止まってた。
- 多分UAの問題。怒られるような速度じゃないと思う……
- でも1000点分商品が取得できて、コンセプト実現には十分だったので、ここの部分は深入りしないことにした。
- そして、友人の結婚式で名古屋へ(ほぼ作業できないのは確定してた)
- PCは一応持っていったので、行きの高速バスで作業
- iPhoneのテザリングでさくらクラウドにSSHでアクセスして作業してたけど、さすがに電波状況がつらい
- つながらなくなる前に、macにデータをもってきてmacで作業
- あとはmongoからデータ取得&view作成の段階だったから、デプロイで詰まることはないと判断(事実詰まらなかった)
- mongodump コマンドについて知る。
- mongoのクエリについて学ぶ
"senses": { $elemMatch: { "senseId": { $in: senseIds } } }
こんなクエリが必要で、$elemMatchも$inも聞いたことないようなレベルだったので、なかなか大変だった - expressjsでゴリゴリ書き出す。
- 並行して名前を検討。kokorotte(ココロッテ)に決定。ココロ + 手(hands)で響きがかわいい感じのやつに。
- バスが名古屋に到着。移動して、式場近くのコメダで作業。
- まぁ、bootstrapだよね……ってことで、jadeのbootstrapテンプレートを使ってつくりだす
- flickrのCCライセンスの画像を素材として集める
- トップページのレイアウト作ったあたりで時間切れ。
- 式場行って受付やったりしてたので、この日はもう作業できず。
10/26(日)
- 遅めの起床
- 検索結果のページを組み始める
- 商品画像は使えないので、文字だけでも映える方法を考える
- 「楽しい」「うれしい」「おもしろい」っぽい部分の文章をハイライト表示したり
- ページトップにそれっぽい画像と文言をおいたり
- 次へ・前への実装
- mongoのskip, limitを使うと割と楽だった
- ドメインを取得
- お名前.comでパパっと。
- .coドメインが安くてなんかいい感じだったので。自動更新切ってあるから1年後には消滅してしまうかもしれない(
- 審査提出。
ざっとこんな流れ。
ソースコードとかはそのうち共有します。IDとかPWとかベタ書きなのでめんどくさい、、