意志薄弱なのでhostsで時限ツイ禁

意志薄弱なのでhostsで時限ツイ禁

hostsを時間で吐きだす何かを用意する

わたしの場合、慣れているのはRubyなのでRubyで書きます。

#!/usr/bin/ruby

class Keeper
  attr_accessor :opened

  def initialize(*open_ranges)
    self.opened = open_ranges
  end

  def ok?
    time = Time.now.hour
    opened.each do |range|
      return true if range.include?(time)
    end
    false
  end
end

puts (if Keeper.new(2..3, 10..10, 15..15).ok?
  <<-EOS
    127.0.0.1       localhost
  EOS
else
  <<-EOS
    127.0.0.1       localhost
    127.0.0.1       twitter.com
    127.0.0.1       hootsuite.com
    127.0.0.1       b.hatena.ne.jp
  EOS
end).gsub(/^\s+/, '')

2..3, 10..10, 15..15がそれぞれ、起床後、昼食時、晩御飯開始前後となっていて、ツイッターその他のSNSを利用してもいい時間とします。

晩御飯以後は特にコードを書いたりしないので解禁しても良いのですが、酔ったうえでのツイートやはてぶは朝起きてからやめときゃ良かったと思うことがおおいので、この際禁止にしておきます。

cronで定期的に/etc/hostsを書きかえる

最初はダイレクトにスクリプトにリンクしていたのですがうまく行かなかったので、定期的に書きかえます。

crontab -e

から

# m h  dom mon dow   command
0 * * * * /home/mmmpa/hosts > /etc/hosts

です。

この際、編集後にはエディタを閉じないと、いつまでたってもcronに反映されないので注意しましょう。

おわり

いまは11:55なので、twitterその他SNSにはアクセスできないことが確認できました。

よかったですね。