Just another Ruby porter,

〜2014年6月上旬〜


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

2014-06-01 (Sun)

GNU parallelのいいところ

いきなりGNU parallelの罠にはまってしまったが、
シェルを介すからこそ簡単にできることもある。
たとえば Ten Count

parallel seq {} $\[{}+9]

でいいわけだ。xargsだとこんな感じにならざるを得ない。

xargs -I@ zsh -c 'seq @ $[@+9]'

2014-06-02 (Mon)

5月のspam

900通ほど。なにしろ31日にspam bombがあったため。

Determine if photos have been rotated to portrait orientation instead of normal landscape orientation

横よりも縦のほうが長い画像を探すという話。

% for i in *; do identify $i | awk  '{split($3,a,"x"); if (a[2]>a[1]) print $1;}'; done

identifyは-formatで好きな情報を選んで表示できるので、awkでsplitするよりは簡単になる。

% identify bakeneko-eban-twitter-sleepy.png
bakeneko-eban-twitter-sleepy.png PNG 300x300 300x300+0+0 8-bit DirectClass 16.4KB 0.000u 0:00.000
% identify -format '%f %w %h' bakeneko-eban-twitter-sleepy.png
bakeneko-eban-twitter-sleepy.png 300 300
% for i in *; do identify -format '%f %w %h' $i | awk '$2<$3{print $1}'; done

さらにワイルドカード処理をconvertに任せてしまえばforは要らない。この場合は改行が必要。

% identify -format '%f %w %h\n' '*' | awk  '$2<$3{print $1}'

アニメーションGIFの場合を考えると最初の1枚だけにしないとうっとうしいので[0]をつけたほうがいい。

% identify -format '%f %w %h\n' '*[0]' | awk  '$2<$3{print $1}'

2014-06-03 (Tue)

Ruby関連ML再開

月曜日の朝に再開。一応spam bombに対しては策を講じた。
30分でまた攻撃も再開。対策もうまくいって全部ブロック。
652通であきらめたようで、その後はぴたっと来なくなった。


2014-06-04 (Wed)

aptコマンド

Ubuntu 14.04から aptコマンドが追加されたというので 例のあれをやってみた。

% apt moo
                 (__)
                 (oo)
           /------\/
          / |    ||
         *  /\---/\
            ~~   ~
..."Have you mooed today?"... % apt moo moo (__) _______~(..)
,----\(oo) /|____|,' * /"\ /\ ~ ~ ~
..."Have you mooed today?"... % apt moo moo moo \_/ m00h (__) -(_)- \ ~Oo~___ / \ (..) |\ ___________|_|_|_____________ ..."Have you mooed today?"... % apt moo moo moo moo (__) (oo) /------\/ / | || * /\---/\ ~~ ~
..."Have you mooed today?"... % apt moo moo moo moo (__) _______~(..)
,----\(oo) /|____|,' * /"\ /\ ~ ~ ~
..."Have you mooed today?"... % apt moo moo moo moo \_/ m00h (__) -(_)- \ ~Oo~___ / \ (..) |\ ___________|_|_|_____________ ..."Have you mooed today?"...

mooが3つになるとランダムに表示されるようだ。
4月1日はfaketimeの出番だ。

% faketime 4/1 apt moo
               _     _
              (_\___( \,
                )___   _  Have you smashed some milk today?
               /( (_)-(_)    /
    ,---------'         \_
  //(  ',__,'      \  (' ')
 //  )              '----'
 '' ; \     .--.  ,/
    | )',_,'----( ;
    ||| '''     '||
% faketime 4/1 apt moo moo
               _     _
              (_\___( \,
                )___   _  Have you smashed some milk today?
               /( (_)-(_)    /
    ,---------'         \_
  //(  ',__,'      \  (' ')
 //  )              '----'
 '' ; \     .--.  ,/
    | )',_,'----( ;
    ||| '''     '||

こっちは1種類だけだ。


2014-06-05 (Thu)

WindowTabs

minttyをタブ化する目的で入れた。 Free版は3つまでタブ化可能。
それを越えると3個ごとのグループが作られる。
minttyはなんだかんだで5個ぐらい開いてるかな。
tmuxとかscreenを使えばいいんだが、
ネストするのいやで大元はタブにするのが好み。


2014-06-06 (Fri)

なぜか100%にならない

例の東京アメッシュで家を中心に20km圏内で雨が降ってる範囲の割合計算してるんだけど、
なぜか100%にならないことに気づいた。 どう見ても色がついてるので変だなと思ったら、blackなんてものが。
そんな色どこにも見当たらない。
拡大してみたら、そうか影か。
そんなエフェクトが。
これを足したらちゃんと100%になった。


2014-06-07 (Sat)

CTRL+TAB

WindowTabsとDexpotの相性が悪い。
せっかくタブ化してもDexpotで仮想デスクトップを切り替えるとタブ化が解除されてしまう。
とはいえ全部重なっているのでCTRL+TABで切り替えるとうまい具合にminttyだけで巡回する。
つまりまるでタブを切り替えるのと同じ状態になる。タブはないけど。
これは適当に重ねとけばWindowTabsがなくてもいいと言える。
CTRL+TABはブラウザでもお馴染の機能で覚えやすい。


2014-06-08 (Sun)

アニメーションGIFの画像をいじる

すでにあるアニメーションGIFの最初の画像を削除して新たに画像を加えるにはどうしたらいいか。
まずはわかりやすいように0,1,2と埋め込んだアニメーションGIFを作る。

% convert -loop 0 -delay 100 -size 250x250 -pointsize 200 -gravity center \
  \( xc:white -draw 'text 0,0 "0"' \) \
  \( xc:white -draw 'text 0,0 "1"' \) \
  \( xc:white -draw 'text 0,0 "2"' \) \
  012.gif

続いてこの画像をいじる。最初の画像は-delete 0で消せる。その後で3を追加する。

% convert -loop 0 -delay 100 012.gif -size 250x250 -pointsize 200 -gravity center \
  -delete 0 \
  \( xc:white -draw 'text 0,0 "3"' \) \
  123.gif

結構あっさりできた。元画像を残しておかなくてもアニメーションGIF画像だけあればできるわけだ。


2014-06-09 (Mon)

アニメーションGIFの画像をいじるのつづき

消したり最後に追加したりするほかに、swapで入れ替えたり、insertで挿入することも可能。
cloneはいままでもちょくちょく使っているし、これだけできれば任意の操作が可能だな。


2014-06-10 (Tue)

文字を回転させて重ねるときれいな模様になる(改)

以前の方法だと無駄に長くなるのでちょっといじってみた。
重ねるときは-compose multiplyでよさげだ。

% convert -size 200x200 xc:white -font Courier-New-Regular -pointsize 100 -gravity center \
  -draw 'text 0,-30 "%"' +repage 0000.png
% convert -gravity center 0000.png \( +clone -rotate 180 \) -compose multiply -composite 1800.png
% convert -gravity center 1800.png \( +clone -rotate 90 \) -compose multiply -composite 0900.png
% convert -gravity center 0900.png \( +clone -rotate 45 \) -compose multiply -composite 0450.png
% convert -gravity center 0450.png \( +clone -rotate 22.5 \) -compose multiply -composite 0225.png

背景の白を透明にして重ねると境界のあたりがかなり残念な状態に。
モノクロに見えるけど実際はアンチエイリアスがかかっているので境界はグレーになっている。
できあがりはこんな感じ。

これはこれで味があっていいのかもしれないが。


<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!