金魚亭日常

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

Deep Work を読んだ

大事なことに集中する

大事なことに集中する

Rebuild で紹介される前に higepon さんのツイートを見て買って読んだ.

現代は,気を散らされることは増えたが,同時に学ぶべきことも増えている. いかにshallow work に費やす時間を減らし,deep work に費やす時間を増やすかが,生き残る術である,みたいな感じだった.

確かに,気づいたら shallow work をしている気がする. メールのチェックとか,RSS feed のチェックとか,Twitter とか,はてブのチェックとか. ちなみに.Facebook は見ても特に面白くないので,いつからか見なくなった. messenger だけ使って,アプリはインストールしていない.

読み終わって,スマホタブレットからtwitter とHBfav とfeedlyを消した. なくても特に困らなかったけど,世の中の流れについていけなくなる気がしたので,3日ぐらいしてからtwitter とHBFavは入れ直した. チェックする頻度は減って,日中はほぼ見なくなった.

この本読んで,SNS見る時間をコントロールするようになった,って人は多いと思うけど,本当にdeep work を集中してできるようになった,って人は少ないと思う. deep work に費やす時間は増えても,フロー状態でやれているかっていうと微妙. というか,仕事の時間が100あったとしても,100全部仕事しているかと言われるとそれは違って,SNSチェックしたり,同僚と駄弁ったりしている時間が下手したら半分ぐらいあったのが,仕事をしている時間が増えたという状態. ここからさらに進むには,やるべきタスクを事前に整理したり,ポモドーロしたり,そういう技術が必要なのだと思う.

deep work の時間をとりあえず確保する派と,時間が空いたらdeep work する派とが出てきていたけど,前者はこの本に出てきた考え方と似ている.

できる研究者の論文生産術 どうすれば「たくさん」書けるのか (KS科学一般書)

できる研究者の論文生産術 どうすれば「たくさん」書けるのか (KS科学一般書)

Jupyter notebook の python から rpy2 で R のパッケージを呼び出す(Windows)

Miniconda 使っているので,

conda install rpy2

でインストール

Rは C:\R\R-3.3.2

にインストールしてある.

Jupyter notebook を起動して, 環境変数 R_HOME を設定していない場合,

import os
os.environ["R_HOME"] = "C:\\R\\R-3.3.2"

として,設定する.

あとはドキュメント通りに. パッケージを読み込む場合,

import rpy2.interactive as r
import rpy2.interactive.packages

rlib = r.packages.importr("package-name")

とすると,読み込める.

とりあえず,名前付き数値ベクトルを作りたいときは,

vec = rpy2.robjects.FloatVector([1,2,3])
vec.names = rpy2.robjects.StrVector(["a", "b", "c"])

などとする. 値を取り出すときは,tuple() とか list() とかで取り出す.

list(vec)
# [1,2,3]
list(vec.names)
# ["a", "b", "c"]

はまりどころとしては,R の場合は変数名に . を使うことができるが,それは rpy2 経由で見ると _ に置換される. パッケージの関数名とか,引数とか.

騎士団長殺し を読んだ

これは自分が今読むべき本だと思いながら読めたので,自分にとってはいい本だった.

読み終わって,買い物に行き,パスタを茹でて,トマトとアボガドのサラダを作って食べた.

騎士団長殺し :第1部 顕れるイデア編

騎士団長殺し :第1部 顕れるイデア編

騎士団長殺し :第2部 遷ろうメタファー編

騎士団長殺し :第2部 遷ろうメタファー編

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