トップ «前の日記 最新 次の日記»

2020-02-21 (Fr) [長年日記]

_ ゼミ参加

機械学習ゼミへ参加。

往路、めちゃめちゃ汗をかいてしまい、 ゼミの参加中に乾くかと思ったが、1時間半では乾かず、冷たい。

本当はゼミ後に大学で仕事をするつもりだったんだけど、 このままだと風邪をひきそうだったので、帰宅させてもらった。

帰宅後早々に風呂で温まる。

なんとか持ちこたえたっぽくはある。

明日の朝大丈夫なら大丈夫だろう。

_ screenshot tool with annotation を探す。

碌なのないなぁ...

shutter: EOL?

flameshot: 線が細すぎる。

ksnip: 新しすぎる。wayland で何度か試すと wayfire が落ちる。 いやそれは wayfire のバグだろうけど。

そしていずれも wayland でまともに動かない。

いちおう使い方に悩んだので、flameshot の使い方を書いておくと、

一旦 flameshot 引数なしで起動。 その後、flameshot gui で画面の一部を撮影してくれる。

最初の引数なし起動がないと、flameshot gui しても何もしてくれない。 flameshot config すら何もでない。とにかく最初の引数なし起動が必要。

ksnip は X なら使えそう

ただ、依頼が、raspbian で使えること、なのだけど、 debian 用パッケージを探して見つからなかったんだよねー。 raspbian でも望みは薄い…

_ terminator 起動しないこと多い

terminator を端末から起動すると問題ないし、 emacs の M-x shell から起動しても問題ない。 ただ、waybar から起動すると、最初の一回以外は起動しない。

何が起きてるのか調査してみた。

とりあえず、

Traceback (most recent call last):
  File "/usr/bin/terminator-", line 114, in <module>
    TERMINATOR = Terminator()
  File "/usr/lib/python2.7/site-packages/terminatorlib/terminator.py", line 72, in __init__
    self.prepare_attributes()
  File "/usr/lib/python2.7/site-packages/terminatorlib/terminator.py", line 97, in prepare_attributes
    self.pid_cwd = get_pid_cwd()
  File "/usr/lib/python2.7/site-packages/terminatorlib/cwd.py", line 42, in get_pid_cwd
    system = platform.system()
  File "/usr/lib/python2.7/platform.py", line 1302, in system
    return uname()[0]
  File "/usr/lib/python2.7/platform.py", line 1269, in uname
    processor = _syscmd_uname('-p','')
  File "/usr/lib/python2.7/platform.py", line 1004, in _syscmd_uname
    rc = f.close()
IOError: [Errno 10] 子プロセスがありません

だそうな。

platform.py の中で、基本的には os.uname() を使って情報は得られるんだけど、 ただ、processor 情報だけは取れないらしく、そこは uname -p に頼る。 しかし、

    try:
        f = os.popen('uname %s 2> %s' % (option, DEV_NULL))
    except (AttributeError,os.error):
        return default
    output = string.strip(f.read())
    rc = f.close()

コード的には何も間違ってないと思うが、f.close() した時点で 既に子プロセスがいないらしい。いないというか、残骸すらない。 んなわけ、普通はない。wait() するまで残骸は残るんだから。

というわけで、最後の行を

    try:
        rc = f.close()
    except IOError:
        rc = 0

にしてみたら解決した。

う〜〜〜〜ん、意味わからん。ほんとにそうなのか…?

なんでプロセスがいなくなる? 誰かが wait() してる?

しかも waybar から起動したときだけ… ………?

まさか waybar が wait() してる?

んー waitpid() しかしてないんだよな… 孫プロセスなんて wait() してない。

でもまぁ、バグレポート投げてみるか...

ときに、

AModule::~AModule() {
  for (const auto& pid : pid_) {
    if (pid != -1) {
      kill(-pid, 9);
    }
  }
}

え゛!? 9 ですかぃ!?? 後始末する時間くらい与えて欲しいなぁ...

_ マスクのポイ捨て

今週火曜夕方に TV でやってた。マスクのポイ捨てが流行ってるらしい。

その TV の中では、「ウィルスを家の中に持ち込みたくないから、 その辺に捨てていってるんでは」とのこと。

なんだかなー。ポイ捨て持ち上げるのも大概にしろよなー。

ポイ捨てするような輩にそんなまともな思考があるわけないじゃん。

無意味に決まってる。

「家着いた。マスクもう要らん。ぽい」

煙草と大差なし。


編集 パスワード変更