Just another Ruby porter,


7月下旬の日記 | RDF

2014-07-23 (Wed)

xsaneやscanimageの起動を速くする

/etc/sane.d/dll.confに書いてあるデバイスを順に試すようなので、
使ってるものだけを残してあとはコメントアウトする。
ScanSnapだったらfujitsuだけ残す。

% time scanimage -L           
device `fujitsu:ScanSnap S1500:106607' is a FUJITSU ScanSnap S1500 scanner
scanimage -L  0.13s user 0.30s system 7% cpu 5.770 total
% sudo vi /etc/sane.d/dll.conf
% time scanimage -L           
device `fujitsu:ScanSnap S1500:106607' is a FUJITSU ScanSnap S1500 scanner
scanimage -L  0.01s user 0.01s system 24% cpu 0.098 total

これだけ違う。フィーダーがジャムるとxsaneの再起動が必要になるが、
なんか気楽に再起動できそうというかさっきからあまりの速さに繰り返し再起動してる。


2014-07-22 (Tue)

High CPU load when converting images with ImageMagick

convertを使ってるとすごく重くなるときがあるが、
export MAGICK_THREAD_LIMIT=1
で解決するかもしれない。

自炊データだと300枚とか400枚になるが、

% convert *.png ...

には無力だった。load averageが40ぐらいになる。
というわけで、 偶奇処理で挙げた例は実は数が少ないときにしか使えない。


2014-07-21 (Mon)

Smart J:COM Boxの変なバグ

いきなり関係ない番組を延々と録り続けるというなんとも迷惑なバグ。
2番組同時録画可能だが、そのタイミングで起こると先に録画してるほうが勝つので、
予約録画キャンセルされてしまう。停止も不可能でもうリセットするしかない。
これたまたま目の前で起こったからわかったが、不在の時だと困るよなあ。
容量の問題もあるし。


2014-07-20 (Sun)

bashで間接的な変数参照

zshでいうところの

% zsh -c 'foo=bar; bar=1; echo ${(P)foo}'
1

という機能はbashじゃevalとかしないと無理だと思っていたら、

% bash -c 'foo=bar; bar=1; echo ${!foo}'  
1

でできると知った。

parameter の最初の文字が感嘆符ならば、変数間接展開が行われます。 bash は残りの
parameter からなる変数の値を変数の名前と見なします。
そしてそこで得られた名前の変数を展開した値を、置換処理の続きで使います。 これが
間接展開 です。

2014-07-19 (Sat)

6) Word Doc をbashで

なんとなく全部bashで解いてみたらいけた。

% bash -c 'a=({1..10000}); a=${a[@]//0/ }; echo $[${a// /+}]'
37359001

と思ったが、これだと1から10000までを空白区切りになってないとか、
0の繰り返しも1個の空白になるんで題意と違ってしまう。

% bash -c 'a=({1..10000}); a="${a[*]}"; a="${a//0/ }"; echo $[${a// /+}0]'
37359001

こうか。しかしbashも地味に変な機能があるな。

zshは

% zsh -c 'echo $[1++1]'         
zsh:1: bad math expression: operator expected at `1'

となってしまうので+の繰り返しを1個の+へ変換するなりしないといけない。

最初の例は

a = [*"1".."10000"]
a = a.map{|x|x.tr("0", " ")}.join(" ").sub(/ +$/, "")
puts eval a.tr(" ", "+")

と同じはずだが、あまりに深すぎてstack level too deep (SystemStackError)で、
Rubyが落ちてしまう。


7月下旬の日記 | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!