金魚亭日常

読書,ガジェット,競技プログラミング

ImageJ の GUI plugin

ImageJ の GUI plugin を作っていて,ボタンを押したときに一回目は動くのだけれど,なぜか2回目以降は NameError で import した module が認識されない.

実験した限りだと,下のスクリプトで何回か画像を開いて閉じてしていると,5回目ぐらいから NameError になる. メモリ使用量が50%超えたぐらいで多分GCが起こっていて,import したmodule が消えるみたいだ.

gist762821786256875758da603517959298

結局,plugin 以下に置いていたものを jars/Lib に移し,plugin 以下には jars/Lib から module として import して実行する,以下のスクリプトを置いた.

from OverlayManagerPlus import OverlayManagerPlus

if __name__ == '__main__':
    OverlayManagerPlus.OverlayManagerPlus()

こうすると,jars/Lib のものはコンパイルされて script$py.class となり,こうなると問題は起きないようだった.

よくわからん.

ImageJ の Jython が 2.7 になった

最近 Overlay と ROI を管理するやつを作っていて

console: Failed to install '': java.nio.charset.UnsupportedCharsetException: cp0.

というエラーが出るようになり,調べていたら,2.7だということに気づいた.

http://bugs.jython.org/issue2222%3Ebugs.jython.org

ImageJ の Jython は 2.5 で,時々不便なことがあったのだけど,これで解消される.

class の中からも import しないと,見つけてくれないことがあってはまった. import してるはずなのにある操作では動かない,ということが起こり,かなり悩んだ.

これはPythonの仕様なのか,Javaの仕様なのか.

github.com

git filter-branch した後処理

git filter-branch で例えばサイズの大きいバイナリファイルとかを完全消去したはずなのにレポジトリのサイズが減らない場合,

rm -Rf .git/refs/original
rm -Rf .git/logs/
git gc
git prune --expire now

する.

https://git-scm.com/book/ja/v2/Git%E3%81%AE%E5%86%85%E5%81%B4-%E3%83%A1%E3%83%B3%E3%83%86%E3%83%8A%E3%83%B3%E3%82%B9%E3%81%A8%E3%83%87%E3%83%BC%E3%82%BF%E3%83%AA%E3%82%AB%E3%83%90%E3%83%AAgit-scm.com

FireFox のタブ幅を調節する

about:configbrowser.tabs.tabMinWidth の値を設定する,という情報は古くて,正しくは,

  • userChrome.css を作って profile フォルダに置く

ということをする. 内容は以下.

.tabbrowser-tab:not([pinned]) {
  min-width: 40px !important;
}

max-width は画面の幅に応じて適当に伸縮して欲しかったので設定しなかった.

これで,スクロールされるまでに表示されるタブの数が増えた.

http://www.ghacks.net/2011/02/02/change-firefoxs-minimum-maximum-tab-width/www.ghacks.net

USB Type-C と Wi-Fi の干渉

Dell XPS13 9350 で外部ディスプレイを使うときに,近くにある無線LANルーターの影響で映像信号が途切れることがある.

古いルーターの近く(2–3 m)でWi-Fi がオンの状態でディスプレイにHDMIで出力すると,映像信号が途切れる. ほぼ点滅しているような状態になる. 接続しているかどうかに関係なく,Wi-Fi をオンにするだけで途切れる. Wi-Fi をオフにすると普通に使える.

隣の部屋に移動して使うと普通に使えるようなので,距離(電波強度)の問題かもしれないが,同じ部屋で10 m ほど離しても効果はなかった.

VGA 出力だと途切れる頻度は減る気がする.

同じ部屋で新しいルーターに交換して試すと,問題ないようだった. 新しいルーターで試したのはVGA 出力だけだが,2時間ぐらい使っても一度も途切れなかった.

なお,新しいルーターは2.4 GHz帯 と5 GHz帯と両方あるが,どちらにつないでも影響なしだった.