今はもうない SWITCH BACK S&M

空気の美味しさを、煙草を吸って感じることができるのは、美味しい酒が良い水で作られるのに似ている。濁ったものでしか、人間は純粋さを測れないのだ。本当に純粋なものには、基準も尺度もないからである

いつだって、より効率の良いものが、どんなに親しまれ、どんなに美しく伝統的な手法にも、必ず勝る。それがシステムというものだ。ようするに楽であること……、それ以外に人間を魅了するものはない、といっても過言ではない。

fluentd で go のログを panic 含めて集約する

go で書いたアプリケーションのログを fluentd で集約するとする。

アプリケーション自体のログは fluentd に直接投げるのではなくファイルに書かれていて、普段のログはなにかのフォーマット(例えばここでは json とする)で書かれてる場合このように書く。

<source>
  type tail
  tag foo
  path /path/to/foo.log
  pos_file /path/to/foo.log.pos
  format json
</source>

しかしこれだと panic してしまった場合その情報は集約出来ない。なので

<source>
  type tail
  tag panic
  pos_file /path/to/panic.log
  path /path/to/panic.log.pos
  format multiline
  format_firstline /(^{\".*\"}$)|(^panic: .*$)/
  format1 /^(?<message>panic:.*exit status \d+)$/
</source>

このような設定を別途足すと後者は、最初の行が json か panic だったらそれを基準に、format_firstline にひっかからない限り行をバッファしていき、次に format_firstline にひっかかった時にformat1 の正規表現でマッチングをする。(なので panic の後に再起動して format_firstline にマッチするようなログが出力されないといけない)

format_firstline を指定しないと正規表現にひっかからない限り行をバッファしてしまうので panic という稀な情報を集約したいのに普段出力される json の行をバッファしてしまい非効率である。

上の2つはそれぞれ前者は json 以外、後者は json にマッチしないので "pattern not match" というログが出てしまうのでそれが気になる場合は log_level error をそれぞれ設定すると warn は出力されない。

参考

夏のレプリカ REPLACEABLE SUMMER S&M

「その西之園って子ね、もう、何て言うのかなあ、正統派のお嬢様、うーん、違うな……、箱入り人形……。そうね、イニシャライズしてないハードディスクみたいな子なの」

若いときには、ずいぶん嫌いなものが多かった。
何かを嫌いだ、と主張することは簡単で、気持ちが良い。
本当に嫌いだったわけではない。
嫌いだと思い込むことで、自分を確保できる、そんな幻想があった。
何かを嫌いになることは、軟弱な自分には都合が良い。
若者は皆、好きなものを求めるのと同じだけのエネルギィを使って、嫌いなものを一所懸命探している。そうすることで、自分が明確になると信じている

weechat の notify_private, notify_highlight なものを pushbullet に送る

github.com

pushbullet いつのまにか title を空で body だけで送った場合は body が push 通知に表示されるようになってた。 なので、body だけで送るシンプルなのが欲しかったので書いた。

capistrano の対象の server を ansible の inventory file から設定する

hosts = `ansible -i /path/to/inventory hoge:fuga --list-host`
hosts.split("\n").map { |host| host.strip }.each do |host|
  server host, user: 'app', roles: %w{app}
end

これだと ansible 上でいう hoge または fuga な host をリストアップし、capistrano でいう app という role をつけることになる。

ansible, capistrano それぞれ向いてる所で使いたい、管理するホスト数はそんなに多くないけど二重で管理はしたくない場合はこういう感じで書いておくと良さそう

幻惑の死と使途 ILLUSION ACTS LIKE MAGIC S&M

幻惑の死と使途 ILLUSION ACTS LIKE MAGIC S&M

幻惑の死と使途 ILLUSION ACTS LIKE MAGIC S&M

「そうじゃないんだ。何かに気がついて、新しい世界が見えたりするたびに、違うところも見えてくる。自分自身も見えてくるんだ。面白いと思ったり、何かに感動したりするたびに、同じ分だけ、全然関係のない他のことにも気がつく。これは、どこかでバランスを取ろうとするのかもしれないね。たとえば合理的なことを一つ知ると、感情的なことが一つ理解できる。どうも、そういうふうに人間はできているみたいだ」