Just another Ruby porter,

〜2014年10月上旬〜


<Older(,) | Newer(.)> | Recent(/)>> | RDF

2014-10-01 (Wed)

gawk length(array)の過去のバグ

斎藤さんにgawkのバグがあったと指摘されたので調べてみた。
lengthが配列対応されたのが3.1.5だったが、
どうも対応が不十分で関数内で使うとスカラー扱いになってしまうというバグだった。
3.1.7で修正されていた。

% gawk-3.1.5 'BEGIN{array[1]=1;print xlength(array)} function xlength(a){return length(a)}'
gawk-3.1.5: 致命的: スカラーコンテキストで配列 `a (array から)' を使用する試みです
% gawk-3.1.6 'BEGIN{array[1]=1;print xlength(array)} function xlength(a){return length(a)}'
gawk-3.1.6: 致命的: スカラーコンテキストで配列 `a (array から)' を使用する試みです
% gawk-3.1.7 'BEGIN{array[1]=1;print xlength(array)} function xlength(a){return length(a)}'
1

2014-10-02 (Thu)

Firefoxの再読み込みボタン

Firefox 29から再読み込みボタンがロケーションバーの中に入った。
それはまあいいんだけど、右側に配置されてしまったのが痛い。
ふだんはChrome使ってるので、
どうしても左側へもうマウスを勢いよく走らせるわけだが、
空振りに終わる。
というわけで、 Classic Theme Restorerを使って檻から出してあげた。
正確には元のボタンは隠して別のボタンを表示しているようだが。


2014-10-03 (Fri)

feed reader

スペースバーを叩いていれば最後まで読めるというreaderが理想だと思うんだけど、
意外に少ない。inoreaderとAOL readerぐらいか。
feedlyはDefault ViewをFull Articlesにしてjで読んで行って、
shift+jで次のfeedへ移動するというリズムでよさげだ。
それよりデフォルトをOldest Firstにする設定がないのが痛い。 本当にないようだ。

というわけで、inoreaderとAOL readerがおすすめ。
特にAOL readerはjだけ押してればいいので特におすすめ。


2014-10-04 (Sat)

第13回危険でない方のシェル芸勉強会を解いてみた

Q1 lgrepがあれば特になにもすることがないような。

% lgrep きく *
b:かきくけこ

Q2 findを使うと簡単。

% find * -type f -printf "%h\n" | uniq -c
      3 a
      2 b
      4 d

Q3 %.1hで1文字だけにすればいい。

% find * -type f -printf "%.1h\n" | uniq -c
      5 a
      4 c

Q4 なんとなくparallelで。

% parallel 'a=$(date -d{} +%a);mkdir -p $a;mv -v {} $a' ::: *              
`20140101' -> `Wed/20140101'
`20140102' -> `Thu/20140102'
`20140103' -> `Fri/20140103'
`20140104' -> `Sat/20140104'
`20140105' -> `Sun/20140105'
`20140106' -> `Mon/20140106'
`20140107' -> `Tue/20140107'
`20140108' -> `Wed/20140108'
`20140109' -> `Thu/20140109'
`20140111' -> `Sat/20140111'
`20140110' -> `Fri/20140110'
`20140112' -> `Sun/20140112'
`20140113' -> `Mon/20140113'
`20140114' -> `Tue/20140114'
`20140115' -> `Wed/20140115'
`20140116' -> `Thu/20140116'
`20140117' -> `Fri/20140117'
`20140118' -> `Sat/20140118'
`20140119' -> `Sun/20140119'
`20140120' -> `Mon/20140120'
`20140121' -> `Tue/20140121'
`20140122' -> `Wed/20140122'
`20140123' -> `Thu/20140123'
`20140124' -> `Fri/20140124'
`20140126' -> `Sun/20140126'
`20140127' -> `Mon/20140127'
`20140125' -> `Sat/20140125'
`20140128' -> `Tue/20140128'
`20140129' -> `Wed/20140129'
`20140130' -> `Thu/20140130'
`20140131' -> `Fri/20140131'

Q5 警告がださいな。

% find * -type f -printf "mv -v %p %.1f\n" | sh
`a/b01' -> `b/b01'
mv: `a/a01' と `a/a01' は同じファイルです
`b/a03' -> `a/a03'
`b/a02' -> `a/a02'
`b/c01' -> `c/c01'
`c/a04' -> `a/a04'

Q6 find大好き。

% cp -v $(find * -type f | sort -r | uniq -w1) .                                             
`c/20141224' -> `./20141224'
`b/20140202' -> `./20140202'
`a/20141021' -> `./20141021'

Q7 ここまできたらfindですよ。

% touch a/20130120 b/20131011 c/20130224
% cp -av $(find * -type f -printf "%p\t%Ts\n" | sort -k1.1,1.1 -k2,2nr | uniq -w1 | cut -f1) .
`a/20130120' -> `./20130120'
`b/20131011' -> `./20131011'
`c/20130224' -> `./20130224'

Q8 はまたこんど。

問題のtarballを作ったんで置いとく。


2014-10-05 (Sun)

Q8

あまり面白い方法は思いつかなった。

% ls -r | awk '!l{l="z"}{print "mv -v",$1,l;l=$0}END{print "mv -v z",$0}' | sh
`file5' -> `z'
`file4' -> `file5'
`file3' -> `file4'
`file2' -> `file3'
`file1' -> `file2'
`z' -> `file1'
m:13/Q8 % grep '' *
file1:5
file2:1
file3:2
file4:3
file5:4

結局awk頼り。


2014-10-06 (Mon)

AcrobatのClearScan

ScanSnapにはAcrobat 9 Standardがついてきていたが全然使ってなかった。
うわさでClearScanがすごいというので試してみたら、
9からの機能だったようでちゃんと使えた。
OCRの結果を使って同じ字体は統合してサイズを減らすらしい。
たしかに1/4とか1/5になる。減色とかばかばかしくてやってられないくらい。
しかも検索できるようになるわけで、いいことずくめだ。
とはいうものの時間はかかるのが難点。
いいかげん新しいPC買うか。
Windows XPじゃ外に持ち出せないし。


2014-10-07 (Tue)

スキャンしたPDFを奇数偶数ページを別々に回転してmergeする

Acrobat前提となるとスキャンも必然的にWindowsになるわけだけど、
文庫本をスキャンするときに横向きにするのは変わらない。
一応ScanSnapのソフトでOCR的な処理して向きを自動で検知的な機能もあるが、
OCRってことは文字がないといけないので限界がある。
AcrobatのClearScanも同等の機能があるというか勝手にやってしまうが、同じ問題がある。
すぐ思いつくのはconvertだが一々1枚ずつ画像へ変換するのも芸がない。そこでpdftkの出番だ。

マニュアル読んでもなんかわかりにくいが、
奇数ページを左90度、偶数ページを右90度に回転して抜き出すには

% pdftk foo.pdf cat oddleft output odd.pdf
% pdftk foo.pdf cat evenright output even.pdf

とする。これを交互にmergeするにはshuffleを使えばいい。

% pdftk odd.pdf even.pdf shuffle output foo-fixed.pdf

この一連の流れは1つにまとめられる。

% pdftk foo.pdf shuffle oddleft evenright output foo-fixed.pdf

2014-10-08 (Wed)

ifttt調子悪い

PM2.5の情報をbotで流しているが、iftttでやたらとエラーになってしまう。
ひょっとしたらYahoo! Pipesのほうがまずいのかもしれないが、
他の普通のRSSもエラーになってるのもあるしなあ。
ログを見てもFeed Trigger Errorなので原因があまりよくわからない。


2014-10-09 (Thu)

Sony ReaderでPDF

PDFならそのままSony Readerで読めるので最近はPDFでも読んでるんだけど、
ちょっと困ったことがある。下部にページ番号が出ないのだ。
そのためノンブルまでcropしちゃうとページ番号を確認するのが面倒くさいことになる。
そこで左右は比較的余裕があるので
この辺りにページ番号を埋め込んでしまえばいいんじゃないだろうか。
というわけで、pdftk multistampを調べている。
ほとんどできているが、好きな位置にページ番号を配置するのが難しい。
ぐぐるとpdftexだらけでそっちはあまり手を出したくない。
TeXはあまりいい思い出がないので。


2014-10-10 (Fri)

Adobe Acrobat 9 Standardのボタンが押せない

ページ番号を埋め込むのは本家Acrobatでもヘッダとフッタの追加でできるはずだが、
EeePCの解像度が低くておそらく下部にあるボタンが押せない。
そのwindowも小さくならないし、
タブで手探りでやってもヘルプが出てきたりでどうにもならない。
あ、もう一回タブでできた!おお。
しかしSony Readerで読んでみると、
ページ送りに20秒ぐらいかかってしまい使い物にならない。残念。
やっぱpdftkか。


<Older(,) | Newer(.)> | Recent(/)>> | RDF


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

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