$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

ストレス軽減するためにやりたいこと

最近色々慌てていて、ストレス溜まりすぎていたなと思ったので、なんとかして軽減したい。以下のことをやってみたいと思う。

  • マルチタスクが苦手で、全然回らないのをストレスに感じていたので
    • Slackのチャンネルの通知を重要なチャンネルでもメンションだけにする
    • 作業中はSlackを画面の外に追い出しておく
    • メールも通知しない。メールチェック時間を設ける。
    • ポモドーロ導入してみる。
    • 1日のミーティングを3つまでに限定する
    • そもそもの仕事量を減らしてもらう。
  • 仕事時間以外も仕事のことを考えていてストレスを抱えてしまったので
    • スマホのSlackをフォルダの奥底にしまって、見てしまわないようにする。通知は受け取りたいのでアプリは置いておく
    • スマホのメールアプリもフォルダの奥底に追いやる
    • 業務時間外はPCのSlackを落とす
  • SNSなどを漠然と見てて、時間が消費したのにモヤモヤしてしまっていたので
    • Twitter/FacebookiPhoneのフォルダの奥底にしまって、見てしまわないようにする
  • ストレス自体をトラッキングできるようにする
    • 毎週ストレスチェックしてみる
    • 子供を寝かしつけた後、瞑想してみて、そこで頭に思い浮かんだ嫌なことをストレスとして認識する
    • 毎日の習慣を決めて、それがこなせていなかったら何か慌てていてストレスが溜まっているというルールにする
    • ストレスに感じたことをメモしておく


参考
blog.shibayu36.org

「超ストレス解消法」読んだ

この前知人とランチしていて、最近めちゃくちゃストレス溜まっていたのだなという自覚を得たので、その知人に紹介された「超ストレス解消法」という本を読んだ。「タイトルめちゃくちゃ胡散臭いけど良い本だよ」と言われていたが、本当にそのとおりだった。

超ストレス解消法 イライラが一瞬で消える100の科学的メソッド

超ストレス解消法 イライラが一瞬で消える100の科学的メソッド

  • まずは自分のストレスをトラッキングしないとと書いてあるのが良かった。トラッキング方法も書かれてる。
  • 100個くらい対処法が書かれているの良かった。その中から自分が役立ちそうなのをピックアップしたらいいと思う。
  • 最後のあたりに、この本で書いてあることを実践するにはどうしたら良いかと書かれているので、そのとおりに実践してみると良さそう

macでの定期実行はcronじゃなくてlaunchdを使う

手元PC(mac)で、スクリプトを定期実行したいときにどうするんだろう?という気持ちになり、いろいろ調べたところcronとかではなくてlaunchdを使ったら良さそうらしいと知ったのでメモ。

定期実行をlaunchdを使って登録する

launchdで定期的にスクリプトを実行 が非常に参考になる。基本的にはStartIntervalかStartCalendarIntervalを使ったらcronのように定期実行ができる。例えば10分に一回実行したかったらこんな感じ。

~/Library/LaunchAgents/com.github.shibayu36.mycommand.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.github.shibayu36.mycommand</string>
    <key>ProgramArguments</key>
    <array>
        <string>/path/to/mycommand</string>
    </array>
    <key>StartInterval</key>
    <integer>600</integer>
    <key>StandardOutPath</key>
    <string>/Users/shibayu36/log/mycommand.log</string>
    <key>StandardErrorPath</key>
    <string>/Users/shibayu36/log/mycommand.err.log</string>
</dict>
</plist>

これで後はこのplistファイルをlaunchctl loadすると定期実行ができる。

launchctl load ~/Library/LaunchAgents/com.github.shibayu36.mycommand.plist

他にも

どうデバッグするか

上記設定を登録するにあたって、なかなかうまく動作しなくて困った。そこでどうデバッグしていったかも書いておく。

  • 定期実行設定の場合でも、その時間まで待たなくとも、launchctl start ...を使えば実行できる
    • launchctl load ~/Library/LaunchAgents/com.github.shibayu36.mycommand.plistしていたら、Label指定でスクリプト実行できる。例: launchctl start com.github.shibayu36.mycommand
  • スクリプトまでも起動できていないようなときは/var/log/system.logあたりにログが出ている
  • スクリプトが実行されてエラーで落ちる場合はSTDERRの内容がStandardErrorPathで設定した場所に出力されている

今回僕が設定するにあたっては以下の点にハマっていた。

  • PATHが通常のターミナルを使っているときと違うので、コマンドが見つからないエラーになっていた
  • StandardOutPath、StandardErrorPathあたりの出力先がroot権限になっていて書き込み出来なかった