minaでデプロイステージを切り替える

REMPSTORYBOARDS ではminaを利用してデプロイを行っているのだけど、これらのアプリケーションでもステージング環境を扱いたいなと思った時に切り替えをどの様にすればよいのか調べたのでメモ。

以下の様な感じで切り分けができる。

case ENV['to']
when 'staging'
set :deploy_to, '/foo/bar/storyboards_staging'
else
set :deploy_to, '/foo/bar/storyboards'
end

これでデプロイする際に

$ bundle exec mina deploy to=staging

とすることでパラメータとして渡すことができるので、これでデプロイ先を切り分けることができる。

evacでPushbulletに出力する

「Pushbullet」最高。 パソコン、スマホ間のデータ送信が信じられないほどラクに! : ギズモード・ジャパンという記事が目についたので便乗エントリ。

evac - Node.js based simple aggregator -を使うとPushbulletのAPIを使ってプッシュ通知することができます。Pushbulletのトークンはアカウントページで確認できます。

{
"in": {
"staticWord": {
"text": "Pushbullet test."
}
},
"out": {
"pushbullet": {
"device": "******@gmail.com",
"token" : "*******",
"title": "テスト",
"mode": "note"
}
}
}

の様なレシピを用意して、以下の様にevacを実行するとプッシュ通知されます。PushbulletにiPhoneChromeを今回は登録しているので下の様にChromeのポップアップと同時にiPhoneにもプッシュ通知が届きます。

$ evac -v recipe/test_pushbullet.js

今回の例は素朴に文字列をそのまま渡すだけですが、こんな感じで何かをトリガーにして、Pushbullet経由で通知することができます。便利。


ターミナル上で確認できるCUIベースのダッシュボードが作れる"blessed-contrib"

blessed-contribというCUIベースのダッシュボードを作れるnpmパッケージを触ってみた。以前紹介したdashingはブラウザで閲覧できましたが、これはターミナル上で確認できます。素敵。

百聞は一見にしかずということで下のGIFアニメ参照。

tmuxで区切った画面の右側にblassed-contribで作ったダッシュボードを表示させています。

ダッシュボードの中身は

  • 左側に利用しているMacのCPU温度の折れ線グラフ(2秒毎に更新)
  • 右下にCPU温度の値(1秒毎に更新)
  • 右上にredisのログ(ログ更新毎)

が表示されています。redis-cliからflushdbするとダッシュボードの右上にredisのログが流れていくのや、左上でredisへ書き込みを行うプログラムを走らせるとCPU温度のグラフが右肩上がりしていきます。

具体的にダッシュボードを作るには以下の様なスクリプトで実現をすることができます。

CUIベースでも十分表現力あるので、ターミナル上でいろいろ眺めるダッシュボードを作ってみたい方はお試しを。