Perl日記

日々の知ったことのメモなどです。Perlは最近やってないです。

予算は使い切らないと損であるという呪い

なんかメモ。



朝にオフィスに来るとすでに暖房がものすごく効いていて、机に手を付けてみると熱を感じられるほどである(机だぞ!?)。
オフィスは賃貸で、電気代は賃貸料金に含まれていると聞いたことがある(違うかもしれないけど)。
それを知ってか知らずか、冷気滅ぶべしという勢いで暖房がついている。
どれだけ電気を使っても払う金額が同じなら、使わなければ損だという理屈のように思える。
(いやまあそんなの関係なくみんな室温が25℃が好きという可能性が高いけど)
あと、トイレに冷暖房はなく外気温と同じなので、トイレに行くと寒くて、戻ってくると暑いという、寒暖差がすごいことになっている。



上の例はとは逆かもしれないが、
使える予算があって、それを使い切らないと損、という考えは、この時代にはおおよそ筋の悪いもののように思える。
余ったら返せばいいのではないか。
何か変なものを余計に購入するよりもずっと良いはず。
そうすると、次の予算から減額されて困る、ということだろうか。
減額されて、減額できた分を評価軸に組み込めればいいのではないか。




限りがあると、なぜかそれをぴったり使いたがる。
会社のお金であって自分のお金ではないから、使わないと損、という感じになるのだろうか。
「もったいない精神」はそこに発揮するところではないように思う。

ミーティングにPCを持ち込むときに気をつけていること

ミーティングにPCを持ち込むときに気をつけていること

  • 基本的に、持ち込んだPCを見ない
    • 前に映し出されている画面を見ればよい
  • 他の作業をしない
    • 他の作業をしていると思われるぞ
  • うるさいキーボードを使わない
    • カタカタカタカタカタという音は、打鍵者本人が思っているより部屋に響いてる
      • 特に、議題の合間に訪れる静寂にひとり「カタカタカタカタ!」と鳴っているのは、ちょっと恥ずかしい
    • そういう意味では、MacBookPro 2015はパタパタ感のキーで悪くはない
    • しかしリモートで参加しているときはミュートにしていないと、たとえMBPだとしてもうるさい
    • 本人の打鍵度にもよるのだろうが…
  • 議事メモとるときは、書くことを口にしながらキーボードを叩く
    • 何を打っているのか口頭で周知しながらだと、まあまあ安心感ある
  • チャットで裏ミーティングをしない

こんな感じかな。

killでプロセスに「0」を送ると、プロセスの生存確認ができる

eyeのソースコードでkillで「0」を送っていた

eyeというプロセス監視ツールがある。
このツールの中身をみていたところ、以下のようなコードがあった。

https://github.com/kostya/eye/blob/f37de3761566e74bd04d3e20c6cdb7a67cbabd99/lib/eye/system.rb

    # Check that pid really exits
    # very fast
    # return true/false
    def pid_alive?(pid)
      if pid
        ::Process.kill(0, pid)
        true
      end
    rescue
      false
    end

プロセスに「0」のシグナル番号をkillで送っている。
ご存知の通り、「9」ならSIGKILLだし、「15」ならSIGTERMだけど、「0」ってなに?、と思って調べたメモ。

意味

先に結果から書くと、「プロセスの生存確認」ということだった。

メモ

kill(1)のmanにはなかったし、-lでも出てこなかった。

$ man kill
$ kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL
 5) SIGTRAP	 6) SIGABRT	 7) SIGEMT	 8) SIGFPE
 9) SIGKILL	10) SIGBUS	11) SIGSEGV	12) SIGSYS
13) SIGPIPE	14) SIGALRM	15) SIGTERM	16) SIGURG
17) SIGSTOP	18) SIGTSTP	19) SIGCONT	20) SIGCHLD
21) SIGTTIN	22) SIGTTOU	23) SIGIO	24) SIGXCPU
25) SIGXFSZ	26) SIGVTALRM	27) SIGPROF	28) SIGWINCH
29) SIGINFO	30) SIGUSR1	31) SIGUSR2

と思ったら、macのmanにはなかったけど、Linuxのmanにはあった。

If sig is 0, then no signal is sent, but error checking is still performed.

もしシグナルが0なら、シグナルは送られないが、エラーチェックは実行されます。

なるほど。
(macで)やってみると、確かにそんな感じになった。

# プロセスがあるとき
$ ps 723
  PID   TT  STAT      TIME COMMAND
  723   ??  R     13:39.12 /Applications/Firefox.app/Contents/MacOS/firefox
$ kill -0 723
$ echo $?
0
$ ps 723
  PID   TT  STAT      TIME COMMAND
  723   ??  S     13:43.44 /Applications/Firefox.app/Contents/MacOS/firefox

# プロセスがないとき
$ kill -0 63421
-bash: kill: (63421) - No such process
$ echo $?
1

というわけで、プロセスIDを書き込んでおいた「/var/run/xxx.pidファイル」があっても、そのプロセスが生きているかどうかをチェックするために、killを使って「0」叩き込んで(叩き込まないで)、プロセスの生存確認をしているということのようだ。
さすが死活監視ツールである。