atom editorでtab-bar, markdown-preview, tree-viewのフォントを変更する
SettingsのEditor settings変えても変わらないんだなぁ。。。
~/.atom/styles.less
に追記する。例えば
.tree-view { font-family: 'Ricty'; } .markdown-preview { font-family: 'Ricty'; } .tab-bar{ font-family: 'Ricty'; }
とする。
cssのclass名はdev tools使って調べるしか無いんじゃないですかね?
vinoの設定
Vino?
今見ている画面をVNCで飛ばせる系VNC Serverのソフトウエアだよ。(コントロールもできる)。
類似品としてはTeamViewerとか。
install
sudo apt-get install vino
で入れる。
config
vino-preference
というコマンドを使うとGUIの設定画面が出る。
上段は2つともチェックする。
中段上はチェックいらねーんじゃねーかな?
大体クライアントがパスワード覚えてくれるんだしパスワードは使おうねせやね。
start
Gnomeだと再起動すると自動でvino-serverが起動してくれるらしいけどそれ以外だと自分でどうにかする必要があるよ。
vino-serverはPATHに入っていなくて
/usr/lib/vino/vino-server
で起動できるから適当な自動起動システムを使おうねせやね。
余談
Vino - ArchWiki 見たらVino3.9.2からvino-preferenceが消えてGnome以外からめっっっっちゃ使いにくくなるらしいよ。死ね!
Atomのautocomplete-plusのキーマップ
に
'atom-text-editor:not(mini) .autocomplete-plus.autocomplete-suggestion-list': 'tab': 'unset!' 'enter': 'autocomplete-plus:confirm' 'up': 'unset!' 'down': 'unset!' 'ctrl-p': 'autocomplete-plus:select-previous' 'ctrl-n': 'autocomplete-plus:select-next'
が載ってたけど地味に趣味じゃなかったので
'atom-text-editor:not(mini) .autocomplete-plus.autocomplete-suggestion-list': 'tab': 'autocomplete-plus:select-next' 'enter': 'autocomplete-plus:confirm' 'up': 'autocomplete-plus:select-previous' 'down': 'autocomplete-plus:select-next' 'ctrl-p': 'autocomplete-plus:select-previous' 'ctrl-n': 'autocomplete-plus:select-next'
こうした。
bbox_inches = "tight"とかそれ系のやつ
要旨
以下に示すように、matplotlibではデフォルトではticksの文字やlabelなどが描写範囲を越えてしまい、見切れることがある。この時、
pylab.savefig("test.png", bbox_inches="tight")
と入力することで問題に対処していたが、それ以外にもpylab.show()の直前にpylab.tight_layout()を入れておくという方法を知ったため、紹介する。
コードと図
# coding: utf8 import pylab x = pylab.arange(100) y = x**2 def test(f = lambda: None): pylab.xlabel("x") pylab.ylabel("y") pylab.plot(x, y) f() pylab.show() test()
↑分かる
pylab.rcParams["font.size"] = 30 test()
↑アイエエエ
pylab.rcParams["font.size"] = 30 test(pylab.tight_layout)
↑ふぅ
イカサマコイン
某所で見て気になった系のアレ
コインを100回振った時、表が出る確率が正確に0.5でない時、実際にどれくらい確率分布がずれるのか
小並感
可視化すると思ってたよりアイエエエ感が出る
あ、手元でdeferがどれくらい遅いか確かめたことない
を読んで唐突にそう思い立ったので
コード
package bench_test import ( "sync" "testing" ) func BenchmarkGoroutine(b *testing.B) { n := 10 var wg sync.WaitGroup b.ResetTimer() for i := 0; i < b.N; i++ { wg.Add(n) for j := 0; j < n; j++ { go func() { wg.Done() }() } wg.Wait() } } func BenchmarkGoroutineDefer(b *testing.B) { n := 10 var wg sync.WaitGroup b.ResetTimer() for i := 0; i < b.N; i++ { wg.Add(n) for j := 0; j < n; j++ { go func() { defer wg.Done() }() } wg.Wait() } } func BenchmarkSequential(b *testing.B) { n := 10 var wg sync.WaitGroup b.ResetTimer() for i := 0; i < b.N; i++ { wg.Add(n) for j := 0; j < n; j++ { func() { wg.Done() }() } wg.Wait() } } func BenchmarkSequentialDefer(b *testing.B) { n := 10 var wg sync.WaitGroup b.ResetTimer() for i := 0; i < b.N; i++ { wg.Add(n) for j := 0; j < n; j++ { func() { defer wg.Done() }() } wg.Wait() } }
sync.WaitGroupあるあるなdeferのベンチ生やしただけ
結果
PASS BenchmarkGoroutine 300000 5064 ns/op 164 B/op 11 allocs/op BenchmarkGoroutineDefer 200000 7225 ns/op 164 B/op 11 allocs/op BenchmarkSequential 5000000 298 ns/op 0 B/op 0 allocs/op BenchmarkSequentialDefer 1000000 1313 ns/op 0 B/op 0 allocs/op ok _/home/akira/Dropbox/go/test 6.189s