Advent Calendar

Sun, Dec 18, 2016

Amazon Dash Buttonで出社する

この記事は出社芸アドベントカレンダーの18日目の記事です。 今日のアドベントカレンダーに登録した。 現在0:31。あと23時間半くらいある! 余裕だね! ちなみに夜開いてる喫茶店がなかったのでこの記事はHUBで書いてる。すごくうるさい。 出社時間をSlackに報告する 弊社は出社自由。リモートもOKで出社も自由。 (自分はリモートすると孤独で寂しかったりするので、旅行中以外は割と出社してる) ※詳細は出社芸アドベントカレンダー1日目出社自由の会社を作ったよ | rake enjoyをご参照。 でもルールがあって、何時ごろ出社するか(/どこで仕事するか)をSlackのチャンネルで報告する義務がある。 リモートが多い時はこんな感じになる。 自由だ…。 ◯◯時頃出社しますと報告するのが面倒になってきた 出社時刻をSlackでつぶやくだけで遅れたりすることで怒られるなどは全く無い。 この会社に入ってアラームを設定することが無くなった。 起きたら何時に出社するか決めてSlackで報告すればいい。 しかし、毎日、何時になるかといちいち考えたりするのすら面倒になってくる。 プログラマは怠惰な生き物。 あのラリー・ウォールも**怠惰(Laziness)**がプログラマの美徳だと名言している。 自動化しよう 朝起きて時計を確認、何時ごろに出社するか決めて、Slackアプリを開き、報告する。 このフローを自動化する。なるべく楽に。 作戦としては今流行りのAmazon Dash Buttonを使う。 押したらSlackへ何時に行くかつぶやく。 起きたらAmazon Dash Buttonを押すだけ。俺がデリバリーされる。 準備するもの Amazon Dash Button これはAmazonで買える。500円。安い。 対象商品の初回購入時が500円割引されるので実質タダ。 なお、ものによっては到着に時間がかかるものもあるので注意。 とりあえず翌日届くレノアにした。 ローカルサーバ Amazon Dash Buttonはローカルネットワークに接続し、ボタンを押すとローカルネットワーク上にブロードキャストされる。 そのブロードキャストがAmazon Dash Buttonから来たかをMacアドレスで判断する。そうであれば任意のアクションを実行するだけ。 ボタンが押された時に任意のアクションをキャッチするのにローカルネットワーク上で動作する常時稼働サーバーが必要。 みんなのお家に眠っているラズベリーパイを使おう。 エンドポイント 任意のアクションをキャッチする場所が必要。 Slackのエンドポイントを直接作っても良いが、拡張性をもたせるため、IFTTTでエンドポイントを作る。 IFTTTのエンドポイントさえあれば、GmailでもGoogleカレンダーでも何にでも連携出来る。 実装する 処理は大きく見ると下記の様な流れになる Amazon Dash Button ---> LocalServer ---> IFTTT ---> Slack IFTTTとSlackを連携する 前述したとおり、Slackとの連携部分を作る。 無料のクラウドサービスIFTTTで作る。 もっと自由にやりたいならAWS Lambdaを使おう。