金魚亭日常

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

Windows の Ruby を 2.4 にした

RubyInstaller は開発が止まってしまったみたいなので,後継になるかもしれない Ruby Installer 2 を使用

github.com

現時点の最新版は 2.4.0-8

普通にインストーラを起動してインストール

MSYS2 は既にインストールしてあったものを使用(インストーラの最後の画面のチェックは外す).

インストール後に ridk コマンド(C:\Ruby\Ruby24-x64/bin/ridk.cmd)を使って,

ridk enable

すると,MSYS2 の設定がされた(C:\msys64 にある). そのあと,

pacman -Sy pacman
pacman -S base-devel mingw-w64-x86_64-toolchain # for 64 bit RubyInstaller

で必要なものをインストール

とりあえず,Jekyll は動かすことができた.

irb で日本語が使えないが,これはしょうがない.

2017年2月に読んだ本

騎士団長殺し,よかった. 久しぶりにこの長さの本を一気読みした.

Steel Ball Run は完結.

物語シリーズは,傷物語

角川インターネット講座 は 4冊目. ネットが生んだ文化誰もが表現者の時代. ニコニコとかのはなし.

僕だけがいない街,買おうか迷ったけど,面白かった. 本編を補完する感じ.

ダンジョン飯,安定して面白かった. 第一部終わりって感じなのだろうか. コロッケが食べたくなった.

Rebuild から,3冊. バーナード嬢曰く,エンダーのゲーム,Deep Work.

バーナード嬢曰く,グレッグ・イーガンはわからないまま読むもの,みたいに書いてて,やっぱそうかと思った. ディアスポラがわけわからな過ぎて積んである.

エンダーのゲーム,すごく面白かった. 死者の代弁者も買っってあるので楽しみ.

Deep Work は,仕事しないとな,って気持ちになった.

ペンギンが教えてくれた物理の話,バイオロギングの話. 生きた動物にいろんなセンサー付けて分析するの,すごく面白そう. 物理強い人はうらやましい. 生態学やりたい人,高校では生物やるより物理やる方が心底いいと思う.

傷だらけカミーユは,シリーズ3冊目で,相変わらず救いがあんまりない話だった. 最後までハラハラして楽しめるが,読後感があまりよくない.

期間 : 2017年02月
読了数 : 15 冊
騎士団長殺し :第1部 顕れるイデア編
村上 春樹 / 新潮社 (2017-02-24)
騎士団長殺し :第2部 遷ろうメタファー編
村上 春樹 / 新潮社 (2017-02-24)
ペンギンが教えてくれた 物理のはなし (河出ブックス)
渡辺 佑基 / 河出書房新社 (2014-04-14)
角川インターネット講座 (4) ネットが生んだ文化誰もが表現者の時代
川上 量生 / KADOKAWA/角川学芸出版 (2014-10-24)
ダンジョン飯 4巻 (ビームコミックス)
九井 諒子 / KADOKAWA (2017-02-15)
僕だけがいない街 9 (角川コミックス・エース)
三部 けい / KADOKAWA (2017-02-04)
大事なことに集中する―――気が散るものだらけの世界で生産性を最大化する科学的方法
カル・ニューポート / ダイヤモンド社 (2016-12-09)
傷だらけのカミーユ (文春文庫) (文春文庫 ル 6-4)
ピエール・ルメートル / 文藝春秋 (2016-10-07)
傷物語 <物語> (講談社BOX)
西尾維新 / 講談社 (2008-05-07)
STEEL BALL RUN スティール・ボール・ラン 24 (ジャンプコミックス)
荒木 飛呂彦 / 集英社 (2011-06-03)
STEEL BALL RUN スティール・ボール・ラン 23 (ジャンプコミックス)
荒木 飛呂彦 / 集英社 (2011-05-19)
STEEL BALL RUN 22―ジョジョの奇妙な冒険part 7 ブレイク・マイ・ハートブレイク・ユア・ハート (ジャンプコミックス)
荒木 飛呂彦 / 集英社 (2010-11-04)
エンダーのゲーム〔新訳版〕(下) (ハヤカワ文庫SF)
エンダーのゲーム〔新訳版〕(上) (ハヤカワ文庫SF)
バーナード嬢曰く。 (REXコミックス)
施川 ユウキ / 一迅社 (2013-04-19)

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 となり,こうなると問題は起きないようだった.

よくわからん.