Slackで痩せる!!!エンジニアのための健康管理

はじめまして、リラクヘルステック室の丸山です。

このブログは、都内を中心にリラクゼーションサロンを展開する株式会社リラクのテックブログです。

「リラクゼーションサロンを展開する会社なのにテックブログ?」という声が聞こえてきそうですが、弊社ではリラクゼーションサロンの運営の他、リアルメディア事業、デジタルメディア事業を展開しています。今は、さらにテクノロジーでひとびとの健康をサポートする事業を展開していく動きをしており、「未来のヘルスケアテクノロジーを作る」というミッションをもって「ヘルステック室」という部署を構えています。

さて、この記事はヘルステック室ブログの第1号です。前述の通り弊社はテクノロジーで健康をサポートしていくミッションを持っているのですが、ヘルステック室のメンバーのうち何名か(というかおもに私)は、まあ、なんというか、ありていに言って、「デブ」です。肥満は万病のもと。ヘルスケア事業をやっている会社のメンバーが不健康、これではいけない。これでは「紺屋の白袴」である、「医者の不養生」である。というわけで、社内でコミュニケーションツールとして使っているSlackに、#dietチャンネルを設け、そこにメンバーのダイエットをサポートするbotを生息させています。

百聞は一見にしかずと言いますし、まずはそのbotが動いている様子をごらんください。

f:id:nkgt_chkonk:20160122180458p:plain

ご覧の通り、体重をpostするとbotくんが体重を記録してくれます。さらに、「グラフ」と言ったり「痩せてる?」と訊くとグラフを書いて投稿してくれます。

このbotは私が趣味で作ったもので、開発言語はScala、hubotを利用せず、Slackのweb APIを直接叩いています。

具体的には、Real Time Messaging APIを利用してメンバーのメッセージをリアルタイムに取得し、特定のメッセージに反応してDBに体重を記録したりDBから読み出した値をグラフにしたりしています。

Slack の Real Time Messaging APIはWebSocketを利用していますので、WebSocketに接続する必要があります。幸いJavaには標準のWebSocket APIであるJSR356と、そのリファレンス実装が存在するので、そちらを利用することでScalaでWebSocketクライアントを実装することができます。

データの永続化については、この程度のbotに大きいRDBMSを利用するのもオーバーキルなので、DBにはH2 Databaseを利用しています。

こんな感じで、ScalaとJavaの資産を利用することで、カジュアルにSlack向けbotを作成することができました。

ダイエットbotが運用され始めてからまだ1週間経っていないのですが、強制的に衆人環視の状況にさらされることによって「毎日体重つけなきゃdisられる…‥」「体重増えたら煽られる……」という恐怖心を自らに与えることに成功し、少なくとも自分の体重に関する意識は随分と変わったように思います。

「1ヶ月後またここに来てください。本物のダイエットをご覧にいれますよ」と言えるよう、健康な体重を目指していきたいと思います。

最後に、会社テックブログの常套フレーズですが、弊社ではScalaやRubyを利用したサーバーサイド開発者のほか、iOSアプリケーション開発者、Androidアプリケーション開発者も募集しています。利用言語や利用テクノロジー、開発環境は、十分に合理的な理由があれば自由に選択できる環境です。ぜひ、一緒に未来のヘルスケアを作っていきませんか?興味がある方はぜひ twitter: @neko_gata_s にご連絡ください。飯でも食いにいきましょう。