ExceptionNotification::Slacky

Rails とかで例外が発生したときに Slack に通知するやつ作った。 exception_notification という便利 gem のプラグインとして動く。

morygonzalez/exception_notification-slacky

実は ExceptionNotification 本体に SlackNotifier あるんだけど、通知内容があっさりしてて自分たちのユースケースには合わなかった。 IRC 使ってた頃は同僚のスーパープログラマー @udzura さんが作った exception_notification-ikachan を使ってて、それと同程度のエラー通知が来るのを Slack で実現したかった。

世の中には Airbrake のような便利なサービスあって、エラーの統計情報とか取ってまとめて通知してくれたりするものもあるけど、甘えてはいけない。エラーが即 Slack に通知されることで、バグを放っておくと Slack のチャンネルがてんやわんや状態になって業務に支障が出るのでバグを直すインセンティブが生まれ、ソフトウェアの品質が向上していくのである。

Ruby で動くソフトウェアは常に何でも最新を追っかけるのが吉な気がする。好きで使ってる earthquake.gem が最近新規インストール時に動かなくなった。バージョンを固定してないジェム( eventmachine など)のバージョンが上がって死ぬようになったっぽい。そのジェム自身には変更がなくても、 Ruby のエコシステムはどんどん新しくなっている。止まっているのはそれだけでバグ生んでるのと一緒だと思う。なのでジェムを使ったり作ったりしたら、なるべく最新の環境で動くように気を配らないといけないし、いつも使ってるジェムに動かないところ見つけたらなるべく Pull Request 送っていかないといけないなぁと思った。そのことが最終的に自分のためにもなる。 earthquake.gem が動くようになる Pull Request 送ろう。

人生も一緒かなぁ。止まっているだけだとバグ生んでるのと同じなのかも知んない。世の中は常に動いている。

Pull Request 、レビューしないといけないものが貯まってしまってつらいと感じることが多かった。そういうつらみを解消するための ruboty プラグイン作った。

morygonzalez/ruboty-check_pr_please

ruboty-cron と組み合わせて

@ruboty [GitHub の Issue のラベル名]のPull Request

という感じで job 登録しておくと、毎時決まった時間になったら Bot が Pull Request のレビューを促す。

便利。

使い方

  1. ruboty の Gemfile に gem 'ruboty-check_pr_please', github: 'morygonzalez/ruboty-check_pr_please' と追加する
    • 定期的に動かすためには ruboty-cron もいる
  2. ruboty の .env に GITHUB_ACCESS_TOKENGITHUB_REPOSITORY='owner/repo' を書く
  3. ruboty をデプロイする

開発時に苦労した点

ruboty 、 rubory とタイポしてしまうこと多くてつらかった。

and the spring goes on...

いつかは別れがやってくることはわかっていたけど、ばあちゃんが死んだ。年明けに具合が悪くなって「一週間ばかり」のつもりで入院したら、末期の肝硬変であることがわかり、入院して3週間で亡くなった。91歳になったばかりだった。

自分にとってばあちゃんは特別な存在だった。親が共働きだったので保育園の迎えにはばあちゃんが来てくれていたし、夏休み冬休み春休みはばあちゃんと過ごす時間が長かった。中学生くらいまでばあちゃんの部屋に布団を敷いて寝てた。

大学を出て病気になり、治療のために実家に帰ってきてからは、ばあちゃんととにかくよく出かけた。竹田の岡城跡の桜、知覧の特攻記念館、久住の紅葉などなど、後期高齢者をいろんなところに連れて回った。ばあちゃんは親と友達の中間のような存在だった。 Flickr にはばあちゃんの写真がいっぱい上がっている。

入院後は休みの度に看病をしに帰省した。写真を見せてやろうと、これまでに自分が撮ったばあちゃんやひ孫たちの写真を大量にプリントして病室に持っていった。家にあった昔のアルバムも病院に持っていって見せた。

ばあちゃんの具合がよくて話ができるときには、ばあちゃんが子どもの頃の話や昔の話を聞いて iPhone に録音した。ばあちゃんの実家は旧士族でそこそこ金持ちだったため、ばあちゃんが赤ん坊の頃の写真があったりした。亡くなる二日前に子ども時代の写真を押し入れから引っ張り出して病室に持っていって見せたらとても喜んだ。

入院中、ばあちゃんは早く死にたいと言っていた。「ばあちゃんはいつ死ぬとじゃろか」と俺に聞くこともあった。みんなに迷惑がかからないように早く死にたいからご飯は食べたくない、とも言っていた。本人には病状は知らされてなかったので、最後まで自分の病気が何なのかは分かっていなかった。しかし助かる見込みはないということは分かっていたと思う(亡くなる前まで意思疎通はできていて、痴呆ではなかったから頭はハッキリしていた)。

平日会社に行っているときにはばあちゃんのことが気がかりで仕事が手につかなかった。自分はいったい何のために実家を出たのだろう。実家を出ずに家にいて地元で働いてればもっとばあちゃんの面倒を見られたし、最初に体調が悪くなったときに病院に連れて行ってもっと長生きさせてあげられたかもしれない。自分がいま置かれている現状を悔やむことが多かった。

火曜日の夜、11時頃ベッドに横になってうとうとしていたら母から電話がかかってきて、亡くなったことを知らされた。結局、死に目に会うことはできなかった。

若い頃は、何を勉強したいとか、どういう仕事に就きたいとか、どんな暮らしをしたいかとか、そういうのばっかりでどこの学校に行くか、どこで働くか、どこに住むかを考えてしまう。ずっと地元に残るということが考えられなかった。しかし実家の近くに住んで、家族が病気のときにはすぐ駆けつけられるのが一番こころ穏やかでいられるのではないかと思うようになった。どんな仕事をするか、どれだけの収入を得るか、どんな暮らしをするか、そういうことも人生の中で大切なことではあると思う。ただそのために自分の両親や祖父母の面倒を見ることが出来ないのは何か違うんじゃないかと考えるようになった。

ばあちゃんが入院している間、阿蘇山がとても勢いよく噴煙を上げていた。まるでばあちゃんの具合が悪くなるのに呼応するかのように黒々とした煙を上げ、阿蘇谷に火山灰を降らせた。葬儀の日は特にひどく、雪と見まごうばかりの灰の塊を降らせていた。

ばあちゃんの死を通じて、自分のルーツを深く考えるようになった。時を同じくして阿蘇の火文字焼きの中止と終了が発表された。子どもの頃、ばあちゃんと一緒に見た阿蘇の火文字焼きがなくなってしまう。ばあちゃんと一緒に阿蘇の習慣が失われたような気がして言い様のない寂しさを覚えた。

自分はばあちゃんが91年間住んでいた阿蘇を飛び出してどれだけの価値を生み出せたのだろう。ばあちゃんの死に目に会えなかったことに見合うだけの人生を歩んでいるのだろうか。

すき焼き

ばあちゃんからもらった上等の牛肉があったのでカセットコンロを買ってきてすき焼きした。鍋がないので鉄のフライパンでやったけどちゃんと文明開化の味がした。

すき焼き、最初に長ネギを斜めに切ったやつを焼いて香りづけしてから肉を投入して軽く焼き、酒、砂糖、醤油を入れてから白菜とか春菊とかを投入したら幸福が実現するという知見が得られた。