Just another Ruby porter,

〜2012年1月下旬〜


<Prev(,) | Next(.)> | Recent(/)>> | RDF

2012-01-21 (Sat)

複数のzipファイルをunzipする

forを使えばまあいいんだけど、unzipにはなぜかwildcard処理が内蔵されている。

% unzip '*.zip'

とすれば全zipが展開される。

% ls
a.zip  b.zip  c.zip
% unzip *.zip
Archive:  a.zip
caution: filename not matched:  b.zip
caution: filename not matched:  c.zip

quoteしないと引数として渡るので、
unzip a.zip b.zip c.zipと実行したのと同じ。
a.zipの中のb.zipとc.zipを展開せよという意味になりエラーになる。


2012-01-22 (Sun)

重複チェック

例の1.1から2.0で四則演算で最大化問題を解いてて、1.8がダブってしまったのでチェックしようぜという話。

実際に勘違いしたのはこんな式なわけだけど、これだと1.8が2つある。

(1.5+1.7)/((2.0/1.8-1.1)*(1.2-1.9/1.6)*(1.3-1.8/1.4))

1.1から順に数えると2.0まで全部あるからやったーと思ったが、
こんなときの定番であるtrしてsortしてuniqしてみると

% echo '(1.5+1.7)/((2.0/1.8-1.1)*(1.2-1.9/1.6)*(1.3-1.8/1.4))' | tr -sc 0-9. '\n' | sort

1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.8
1.9
2.0
% echo '(1.5+1.7)/((2.0/1.8-1.1)*(1.2-1.9/1.6)*(1.3-1.8/1.4))' | tr -sc 0-9. '\n' | sort | uniq -d 
1.8

ちゃんと見つかる。このtrの目的以外の文字を改行にsqueezeしながら置き換えるというのはよく出てくる。
というわけで、これをちょっと直して126000。まあ、10万越えたからよしとしよう。


2012-01-23 (Mon)

ImageMagick convertで連番処理

自炊してるとconvertで連番処理がいっぱい出てくるが、forを使わなくてもいける場合がある。

% ls *.jpg
001.jpg  002.jpg  003.jpg  004.jpg
% convert '00[1-4].jpg' %03d.png
% ls *.png
000.png  001.png  002.png  003.png

とpngへ変換できる。%03dのようにprintf形式が使える。

convertコマンドは1回しか起動されないのでforでやるよりは速い。

% ls *.png|wc -l
318
% convert '*.png' -type grayscale -depth 4 d4/%03d.png
convert '*.png' -type grayscale -depth 4 d4/%03d.png  19.20s user 0.94s system 211% cpu 9.544 total
% bash -c 'for i in *.png;do convert $i -type grayscale -depth 4 d4/$i;done' 
bash -c 'for i in *.png;do convert $i -type grayscale -depth 4 d4/$i;done'  19.81s user 1.66s system 198% cpu 10.828 total

ただ、%dは0から始まるんだよねえ。1から始めたい場合はdummyの画像データを置くといい。

% rm *.png
% convert null: '*.jpg' %03d.png
% ls -l *.png
-rw-r--r-- 1 eban eban    224 2012-01-24 00:58:35 000.png
-rw-r--r-- 1 eban eban 545928 2012-01-24 00:58:35 001.png
-rw-r--r-- 1 eban eban 514659 2012-01-24 00:58:35 002.png
-rw-r--r-- 1 eban eban 131393 2012-01-24 00:58:35 003.png
-rw-r--r-- 1 eban eban 370557 2012-01-24 00:58:35 004.png
% rm 000.png

null:というjunk imageを最初に指定することで1ずれる。000.pngは要らないので削除。
もっともImageMagick 6.2以上なら、こんなことしなくても-sceneで連番の初期値を指定できる。

rm *.png
% convert '*.jpg' -scene 1 %03d.png
% ls -l *.png
-rw-r--r-- 1 eban eban 545928 2012-01-24 01:02:53 001.png
-rw-r--r-- 1 eban eban 514659 2012-01-24 01:02:53 002.png
-rw-r--r-- 1 eban eban 131393 2012-01-24 01:02:53 003.png
-rw-r--r-- 1 eban eban 370557 2012-01-24 01:02:53 004.png

あ、そうそう。入力に関してもconvertは自前のwildcard処理を持っているということで。


2012-01-24 (Tue)

皮肉な結果

雪の影響で電車遅れると思ってちょっと早めに出たら、
案の定遅れていた。でも理由はラッシュの影響だった。
みんな早めに集まっちゃったのか?
雪の影響と言えなくもないか。


2012-01-25 (Wed)

Alphabet

AからZまでを表示するという単純な問題。
Bashはprintfじゃ面白くないので、
バイナリに埋まっている文字列をgrepで抜き出すというひねくれた方法でやってみた。
viでも 同じことしてる人がいた。

% grep -ao A.\*Z /bin/nc
ABCDEFGHIJKLMNOPQRSTUVWXYZ

うちのUbuntuだとncでいけるんだけどねえ。

それにしても これは謎すぎる。これもnnさんか。


2012-01-26 (Thu)

rvm install goruby

いつのまにかちゃんとrvmでgorubyもインストールできるようになっていた。

% rvm use goruby
Using /home/eban/.rvm/gems/goruby
% ruby -v
ruby 2.0.0dev (2012-01-26) [i686-linux]
% ruby -e h 
Hello, world!

ためしにmechanizeをgemでインストールしてみたら問題なくいけたけど、
これを常用してる人はいないだろうな。


2012-01-27 (Fri)

手回し充電ラジオ

予知騒ぎがあったけどでかい地震が来なくてよかった。
で、手回し充電ラジオぐらいあったほうがいいと思ってamazonで調べてるんだけど、
なんか 7700円とかまた値上がりしていた。
今日見たら6500円ぐらいだしなんでそんなに安定しないのかと思ったら、
この商品には新しいモデルがありますと表示されていた。
なるほど。近日発売なわけね。
スペックは変わらないけどスマホ対応が進んでるとのことで、
新しいケーブルが付属するとかそんなとこかな。


2012-01-28 (Sat)

Bead Sort

やっとBead Sortの意味を理解した。
文字の部分を下に落とすイメージなんだな。
なんでこれでソートできるのか不思議だ。


2012-01-29 (Sun)

今月は128冊

結構スキャンしたねえ。たぶん今月はこれで終了。
グインは84巻。もう半分以上スキャンしてしまったのか。

スムーズに進めるにはきれいに解体しないとだめだ。
接着剤が染み込んでたりすると確実にセンサーにひっかかる。
こうなると紙が折れ曲がったり、その接着剤を取り除いたりで確実に余計な時間を取られる。
大胆にカットしたいところだけど、なんかこう少な目にしてしまうんだよなあ。

ScanSnapって一度に6,70枚ほどしかセットできないけど、途中で継ぎ足せることに気づいた。
これで中断なく最後までいけるので、地味に時間短縮になる。


2012-01-30 (Mon)

google groupからのメールを他のgoogle groupへ転送できない

google groupを個人的なバックアップに使うほうが悪いが、

Technical details of permanent failure:
Nested groups detected

と言われてそのメールだけ転送できなくなっていることに気づいた。
以前はそんなことなかったんだが。
単純に@googlegroups.comだけで判断するようになったのかもしれない。


2012-01-31 (Tue)

Vimium

Google ChromeにVimiumを入れてみた。
Keyconfigだとjやkのスクロールとか微妙に多めでちょっと不満があった。
Vimiumはスクロールサイズも設定できるし、最初から違和感のない設定だったので問題なし。
なぜかbが設定されてなかったので、まずはmap b scrollFullPageUpとした。


<Prev(,) | Next(.)> | Recent(/)>> | RDF


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

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