15 min/d

ぼうずやのにっき

bwilike.meを公開した

bwilike.meを公開した。bwilike.meはTwitterプロフィールを自動更新するWebサービス。GitHubのアクティビティに基づいて、実際にさわっているプログラミング言語Twitterプロフィールにlike:として設定してくれる。詳細はリンク先を参照。

TwitterユーザーかつGitHubユーザーかつ、プロフィールに好きなプログラミング言語を載せたいユーザーかつ、正確に毎日更新したいユーザーとなると、相当、母集団は少ないはずだけど、使いたい人は使ってみてほしい。

宣伝はさておき、bwilike.meの中身やら反省やらを書いておく。

まずbwilike.meのインフラ面から。bwilike.meはAWSで動いている。DNSとしてRoute53、ロードバランサーとしてELB、Web/DBとしてEC2、ジョブキューとしてSQSを使用している。自動化はほとんどしていない。ソフトウェアのインストールなどは、忘れないように最低限のシェルスクリプトを書いてあるくらい。

ミドルウェアとしては、Node.js、MongoDBで動いている。それくらいかなあ。基本的にはbouzuya/bwilikeを見れば分かるのだけれど、foreverを使ってデーモン化したNode.jsと、ほとんど入れたままの状態のMongoDB。

アプリケーションとしては、webはexpressをベースとして使い、テンプレートエンジンにjade、CSSプリプロセッサにLESS(less-middleware)、DBとの接続にはmongodbをそのまま使っている。セッションストアにはconnect-mongo、認証まわりにpassportを使い、passport-twitter/passport-githubを使っている。workerはaws-sdktwitter/githubを使っている。ベタに書きすぎててダサいけど、気にしない。

構成要素としてはこんなものかな。素朴なNode.jsアプリケーションといった感じ。

あとは反省。KPTで振り返る。Twitterでぽろぽろ書いてしまったので、もうまとめたリストだけ。

  • K: Keep
    • 自分の使いたいものを公開サービス化する
    • Linux (Ubuntu) + Node.js + MongoDB + JavaScript によるアプリケーション開発
  • P: Problem
    • 公開までに時間がかかりすぎている
    • フロントエンドの知識が不十分
    • 移植性が悪い
  • T: Try
    • 3日で開発する
    • フロントエンドのMVCフレームワーク(Backbone.js)を使う
    • インフラとしてPaaS(Heroku)を使う

さあ、次は何をつくろうか。

16 min.