Sooey

2011-11-01 10:25:36 +0900

Campfireで使うbotをHubotに乗り換えた。

数ヶ月前からGithubを真似てチームで利用しているCampfireにbotを常駐させていたのだけど、そのGithubからHubotがオープンソースで公開されたので、そちらに乗り換えることにした。

ちなみに、これまではjoshwand/campfire-botをforkして簡単なプラグインを書いて使っていた。

Hubotを動かす環境はこれまでのbotと同様Herokuにしたので、基本的にはDeploying Hubot onto Herokuに書かれた手順で問題なくインストール&デプロイできた。

まず、ローカルにHubotのアーカイブをダウンロードして展開する。

$ curl -L -O https://github.com/downloads/github/hubot/hubot-1.1.7.tar.gz
$ tar xvf hubot-1.1.7.tar.gz

展開してできたhubotディレクトリに入り、gitリポジトリを作成してすべてのファイルをコミットする。

$ cd hubot
$ git init
$ git add .
$ git commit -m 'Initial commit'

Githubリポジトリをリモートとして追加

Hubotのスクリプトをチームでカスタマイズしていく場合は、Github上にリポジトリを作ってリモートとして追加しておく。

$ git remote add origin ...
$ git push origin master

ローカルでの動作確認

Hubotの実行にはredisが必要なので、Homebrewでインストール&起動しておく。

$ brew install redis
$ redis-server /usr/local/etc/redis.conf

Campfireに接続するために必要な設定を環境変数で定義する。

$ export HUBOT_CAMPFIRE_ACCOUNT='your-subdomain'
$ export HUBOT_CAMPFIRE_TOKEN='...'
$ export HUBOT_CAMPFIRE_ROOMS='999999'

HUBOT_CAMPFIRE_ACCOUNTにはCampfireで使用しているサブドメインを、HUBOT_CAMPFIRE_TOKENにはAPIアクセスに使用するトークンを、HUBOT_CAMPFIRE_ROOMSには入室させるルームのIDをそれぞれ設定する。

ソースにはProcfileが含まれているので、foremanで以下のように起動するか、

$ foreman start

もしくはProcfileに書かれているappプロセスの内容を直接実行する。

$ bin/hubot -a campfire -n Hubot

これで、redisへの接続が完了した後にbotがルームに入室してくるので、動作を確認する。

Herokuへのデプロイ

HerokuのcedarスタックでHubot用のアプリケーションを作成する。

$ heroku create --stack cedar my-cool-hubot

herokuにコードをpushしてデプロイする。

$ git push heroku master

appプロセスを1つ起動する。

$ heroku ps:scale app=1
Scaling app processes... done, now running 1

redistogoアドオンのnanoプラン(無料)を有効にする。

$ heroku addons:add redistogo:nano
-----> Adding redistogo:nano to qnyp-hubot-production... done, v5 (free)

Campfireに接続するために必要な設定を定義する。

$ heroku config:add HUBOT_CAMPFIRE_TOKEN='...'
$ heroku config:add HUBOT_CAMPFIRE_ROOMS='999999'
$ heroku config:add HUBOT_CAMPFIRE_ACCOUNT='your-subdomain'

これで、Heroku上で稼働するbotがルームに入室してくる。

うまく動かないようなら、heroku logsでログを確認したり、heroku psapp.1プロセスがちゃんとup状態になっているか確認する。

2011-10-31 13:49:08 +0900

10月31日のURLメモ。

最後に、Zuckの話の中から印象的なことばを読者にお伝えしたい。「最大のリスクは、一切のリスクをとらないこと・・・非常に変化の早い世界で、唯一失敗が保証されている戦略はリスクをとらないことだ。」

2011-10-31 01:34:42 +0900

ruby-1.9.3-p0がリリースされたので、Lionで常用するrubyをアップデートした。

最近はrvmの使用をやめて、Homebrewのruby-buildパッケージを使ってrubyをインストールして、rbenvとの組み合わせで使っているので、まずはruby-buildパッケージをアップグレード。

$ brew upgrade ruby-build

そして1.9.3-p0をインストールして、デフォルトで使用するバージョンを切り替える。

$ CONFIGURE_OPTS="--with-readline-dir=/usr/local" rbenv install 1.9.3-p0
$ rbenv global 1.9.3-p0
$ ruby -v
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0]

Yay!

2011-10-30 08:18:24 +0900

10月29日のURLメモ。

2011-10-28 02:30:44 +0900

10月27日のURLメモ。

RSpecのdoublestubmockメソッドの使い分けについて。

You can also use the mock and stub methods to create test doubles, however these methods are there for backward compatibility only and will likely be deprecated and then removed from future versions.

ということなので、これから書くテストコードでは基本的にdoubleのみを使うべき、ということのようです。

Luaベースの言語でビジュアルプログラミングができるiPadアプリ。カラーコードを入力する際にエディタ上にカラーチャートが表示されて、インタラクティブに値を入力できるのがかっこいい。

あるある。リファクタリング時の指針としたい。