見出し画像

自分が死んだら自動的にツイートするシステムを作った

・最近のウェアラブルデバイスって心拍数を常時測定してくれるものが多いんですよね
・しかもAPIを通してそうした情報をリアルタイムに取得する事もできます
・つまり「今生きているか?」をプログラムで扱えるわけです
・という事で作ったのがこれ

画像1

・今回は愛用している「Fitbit Alta HR」というウェアラブルデバイスを利用しました

・簡単に言えば、常駐プログラムが心拍数を監視し、ゼロになったらIFTTTを経由してTwitterやFacebookに「死にました」と投稿するシステムです
・死活監視バッチをサーバサイドで定期実行します

class PhysicalHealthChecker(object):
   def __init__(self, provider, event_emitter):
       self.event_emitter = event_emitter
       self.heart_beat_provider = provider
       seconds, beats = self.heart_beat_provider.request_heart_beats('today')
       expected_beat = np.polyval(np.polyfit(seconds, beats, 1), seconds[-1] + 60)
       if self.is_alive(expected_beat):
           print 'still alive.'
       else:
           timestamp_file_name = 'death_time.txt'
           death_time = open(timestamp_file_name, 'r').read()
           if not death_time:
               print 'dead.'
               self.event_emitter.emit('death')
               with open(timestamp_file_name, 'w') as file:
                   file.write(datetime.now().strftime("%Y/%m/%d %H:%M:%S"))

   @staticmethod
   def is_alive(heart_beat):
       return heart_beat >= 10


if __name__ == '__main__':
   ifttt_key = os.getenv('IFTTT_WEB_HOOK_KEY')
   fitbitHealthChecker = PhysicalHealthChecker(FitbitClient(), IftttEventEmitter(ifttt_key)

・と言っても単純に「返ってきた心拍数がゼロになら」という条件だとシャワーに行くため外しただけで死んじゃうので、直近のデータを回帰分析して「心拍数が下がっていった結果ゼロになる」という条件をトリガーにしています
・病気にしろ外傷にしろ、死ぬ時は徐々に心拍数下がっていくはずですからね!

・応用すれば、悪の組織と対峙する時「やめときな。俺が死んだら例の文章は全世界に公開されるぜ」的なことができます

・勿論やんごとなきファイルが詰まったハードディスクを爆散させる事も可能です

・どうやって作るの?という技術寄りの話はこちらにまとめました

・Githubリポジトリはこちら

・動作確認しづらいのが難点です(ウィットに富んだジョーク)

この記事が気に入ったらサポートをしてみませんか?