2016-01-12(火) [長年日記]
■ Pushbulletと並行してSlackも試用中
ちょっとした通知や宅配トラッカーで使ってるぶんには良かったPushbulletだが、こないだのMackerelの通知に至っては間に2つもサービスが挟まっていて耐障害性が低すぎるので、もうちょっと信頼性(?)の高い感じにしようと思い、(けっきょく)Slackに手をだすことに。最近の監視系サービスはどこもSlackをサポートしてるし。
Webサービス業界の隣にいるとSlack使ってないと人間じゃない気さえしてくるけど、職場では別のチャットを使っていることもあってそもそもアカウントすら持ってなかったんだよね。とりあえずテスト用にぼっちなTeamを作って運用開始。
とりあえずMackerelとLogentries*1のクリティカルなエラーだけ送ってみることにした。あと簡単な単発の通知にはslack-poster gemを使ってこんな感じでpushmeコマンドの代替品を書いた。テキストのポストだけなら簡単で良い:
require 'slack_poster' URL = 'YOUR INCOMING WEBHOOK URL' slack = Slack::Poster.new(URL, icon_emoji: ':mailbox:', username: ARGV.shift) slack.send_message(ARGF.read)
アイコンやユーザ名を自由に設定できるのはいいね、同じchannelに投稿しても見分けがつきやすくて*2。しばらくこんな感じで使ってみよう(すでに宅配トラッカーでSlackをサポートする未来がみえている……ような)。
2016-01-09(土) [長年日記]
■ デレステのLIVE Grooveイベント、やっぱり相性がいい
![[スクリーンショット]23764位 [スクリーンショット]23764位](https://lh3.googleusercontent.com/-USLKxTFIkHk/VpCI-lQoyJI/AAAAAAABisc/6XnYaSZg0zM/s512/Screenshot_2016-01-09-12-22-23.jpg)
前回「この上(2万位以内)を目指そうと思ったらMASTERに鞍替えするしかない」とか書いてたくせに、PROのままでさらに順位を上げられた。年末年始のあいだは時間がとれなくてかなりスタミナを無駄にしたので、もうちょっと時間があればいけたかも知れん。脱落している人が増えてるのかな。こういうゲームは継続的にプレイヤーを増やすの難しそうだけど……。
ちなみに、ためしにMASTERにもチャレンジしてみて、メドレーの中におねシンとS(mile)ING!が入っているという温情構成だったにもかかわらずアンコールに進めなかったので、これはもうどうしようもない。正直、技量的には壁にぶち当たっていて、このイベントでMASTERをやれるイメージがつかめないのだった。
とはいえPROでは初めてPERFECT COMBOをやれたのだが(しかもその後のアンコールでもFULL COMBOなので4曲連続)。
![[スクリーンショット]PERFECT COMBO [スクリーンショット]PERFECT COMBO](https://lh3.googleusercontent.com/-1kShkYv0dNE/VpCI_f_cpTI/AAAAAAABisg/k479Bqx_FxM/s512/Screenshot_2016-01-08-07-49-24.jpg)
2016-01-07(木) [長年日記]
■ tDiary (のmasterブランチが) Herokuに直接デプロイ可能になった
もう1年近くまえ、tDiaryをHerokuボタンでデプロイ可能にしたんだけど、あれはそれ用に特殊な設定をしたherokuブランチのことだった。これはこれで良かったんだけど、通常プルリクエストはmasterブランチに対してなされるので、それをHeroku上でテストしようとするとなかなか面倒だった。
で、@machuがその「特殊な設定」をあらかじめやってくれるtDiaryのbuildpackを書いてくれ、おかげでmasterブランチでそのままデプロイ可能になった。すごい!!
これで、tdiary-coreにプルリクエストが来ると:
- (自動的に)Travis-CIでテストが走って、
- (自動的に)Herokuに専用のtDiaryがデプロイされ、
- 問題なければプルリクエストをmergeすることで(自動的に)Heroku上の開発用tDiaryが最新化される
という流れができるようになった。この流れを可視化するようにHeroku上にPipelineも整備した(下図)。なんかモダンじゃね? なんといっても手元にテスト環境がなくても開発できるぞ。感動や。
![[スクリーンショット]現在のtDiaryプロジェクトのHeroku pipeline [スクリーンショット]現在のtDiaryプロジェクトのHeroku pipeline](https://lh3.googleusercontent.com/-EUSBl3ysYYg/Vo9sQ95YdLI/AAAAAAABiqU/92xdLlKOWvg/s512/%2525E3%252582%2525B9%2525E3%252582%2525AF%2525E3%252583%2525AA%2525E3%252583%2525BC%2525E3%252583%2525B3%2525E3%252582%2525B7%2525E3%252583%2525A7%2525E3%252583%252583%2525E3%252583%252588%2525202016-01-08%25252016.58.27.png)
で、今後新しいtDiaryインスタンスをHeroku上に作る場合はtDiary.orgやGitHub上のリポジトリにあるHerokuボタンをポチっとして必要事項を入力するだけでよくなったんだけど、以前herokuブランチで作成した日記をこの仕組みに乗せないといけない。
まずはHeroku上のtDiaryを運用するで有効になったsystem_updateプラグインでtDiaryを最新化する。実はこれで利用するブランチがherokuブランチからmasterブランチに切り替わっている。このままだと必要なBuildpackが有効になっていなくてエラーになるので、以下のコマンドでこれを切り替える(コマンドからじゃないとできないっぽいのが残念):
heroku buildpacks:set https://github.com/tdiary/heroku-buildpack-tdiary.git -a 【対象のApp名】
(herokuコマンドはgemから入れることができる。ex. 「gem install heroku」)
続いてHerokuのdashboardで当該Appを開き、「Manual deploy」からmasterブランチをデプロイする。これで動くはず。
あとは「Automatic deploys」の対象ブランチをherokuからmasterに変えておけば、以後はmasterブランチを対象にsystem_updateプラグインが動くはずである。手元のテスト用Appはこれで移行できている。