Just another Ruby porter,

〜2015年2月下旬〜


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

2015-02-21 (Sat)

joinで組み合わせ

以前joinをgrepの代わりに使う話を書いたが、
複数マッチすることを利用すると組み合わせ的な使い方ができる。

% seq -f 'a %g' 3     
a 1
a 2
a 3
% join <(seq -f 'a %g' 3) <(seq -f 'a %g' 3)
a 1 1
a 1 2
a 1 3
a 2 1
a 2 2
a 2 3
a 3 1
a 3 2
a 3 3

aが共通なので各々可能性があるものが列挙されるようだ。
aが邪魔なら消すことも可能だ。

% join -o 1.2,2.2 <(seq -f 'a %g' 3) <(seq -f 'a %g' 3)
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3

2015-02-22 (Sun)

ぽすれんのスポットレンタル

借りなければ月額料金がかからないので定額をやめて
スポットレンタルにしたわけだけど、
旧作しか借りないなら断然こっちのほうが安い。
特に毎月のようにやってる旧作80円レンタルを利用すれば、
7枚までなら送料同じなので800円ぐらいで借りられる。
定額だと2000円ぐらいで8枚までなので、
たまに気が向いたときに借りるのにぴったりだ。

ぽすれんスポットレンタル


2015-02-23 (Mon)

sortしてもjoinが文句言う

数値を右詰めにしてしまうと、sortしてもjoinはsortと見做さないようで。

% seq -f "%2g" 10 -1 1                                        
10
 9
 8
 7
 6
 5
 4
 3
 2
 1
% seq -f "%2g" 10 -1 1 | sort | join --check-order - <(seq 10)
1
2
3
4
5
6
7
8
join: -:10: is not sorted: 10

9はどこへ?


2015-02-24 (Tue)

mawkででかい数を扱う

ちょっとでかくなるとこんな表示になってしまう。

% echo 10000000000|mawk '{print $1+1}'
1e+10

原因はデフォルトの書式(OFMT)が"%.6g"だから。
これを"%.f"にすればまだまだいける。

% echo 10000000000|mawk '{print $1+1}' OFMT="%.f"
10000000001

"%d"だとオーバーフローしてしまうのでだめ。

% echo 10000000000|mawk '{print $1+1}' OFMT="%d"
536870912

2015-02-25 (Wed)

pal

cygwinにpalというカレンダーソフトが入ったんで、
なんだと思いubuntuにパッケージあったんだ試してみた。

% pal 
     Su   Mo   Tu   We   Th   Fr   Sa |     Su   Mo   Tu   We   Th   Fr   Sa
Feb  15  U16S C17C C18C  19   20   21 |Mar  22   23   24   25   26   27   28 
    U22S  23   24  @25@  26   27   28 |Apr C29C  30   31  U01S C02C C03C  04 
Mar  01   02   03   04   05   06   07 |    C05C  06   07   08   09   10   11 
    U08S  09   10   11   12   13   14 |     12   13   14  U15S  16   17   18 
     15   16  U17S  18   19   20   21 |     19   20   21  U22S  23   24   25 

なんだかよくわからないが、自分でイベントを設定できるらしい。
とりあえず/usr/share/pal/us.palのまねして日本の祝日を~/.pal/jp.palにちょっと書いてみた。

JP JAPAN
00000101 元日
*0122 成人の日
00000211 建国記念日

これで~/.pal/pal.confからus.palとか要らないもの消して、
file jp.pal (red)を追加してみるとこんな感じになった。

% faketime 1/2 pal
     Su   Mo   Tu   We   Th   Fr   Sa |     Su   Mo   Tu   We   Th   Fr   Sa
Dec  21   22   23   24   25   26   27 |Jan  25   26   27   28   29   30   31 
Jan  28   29   30   31  J01P @02@  03 |Feb  01   02   03   04   05   06   07 
     04   05   06   07   08   09   10 |     08   09   10  J11P  12   13   14 
     11  J12P  13   14   15   16   17 |     15   16   17   18   19   20   21 
     18   19   20   21   22   23   24 |     22   23   24   25   26   27   28 

*0122でちゃんと第2月曜日になってる。

JPじゃなくて祝日にしてみると残念ながら表示が乱れる。

% faketime 1/2 pal
     Su   Mo   Tu   We   Th   Fr   Sa |     Su   Mo   Tu   We   Th   Fr   Sa
Dec  21   22   23   24   25   26   27 |Jan  25   26   27   28   29   30   31 
Jan  28   29   30   31  祝01日 @02@  03 |Feb  01   02   03   04   05   06   07 
     04   05   06   07   08   09   10 |     08   09   10  祝11日  12   13   14 
     11  祝12日  13   14   15   16   17 |     15   16   17   18   19   20   21 
     18   19   20   21   22   23   24 |     22   23   24   25   26   27   28 

2015-02-26 (Thu)

awscliのs3 cpでcat

ファイル名に"-"を指定すると標準入力や標準出力という意味になるので、

% aws --quiet s3 cp s3://bucket/object.txt -

でcatと同じように使える。
またダウンロードしながらgzなファイルを伸長したい場合はこんな感じでいける。

% aws --quiet s3 cp s3://bucket/object.txt.gz - | zcat > object.txt

cf. cp — AWS CLI 1.7.12 documentation


2015-02-27 (Fri)

カプメンタイマー

便乗してちょっと変形。

% for i in {180..1};do date -d@$i -u +$'\r%H:%M:%S'|tr -d '\n';sleep 1;done;echo $'\a'

最近のUbuntuだとデフォルトでビープ音は鳴らないので、
paplayで音を鳴らすといいかもしれない。
/usr/share/sounds/ubuntu/stereo/ 以下にいろいろある。

ビープ音鳴らしたいときは/etc/modprobe.d/blacklist.confの
blacklist pcspkrをコメントアウトして再起動。


2015-02-28 (Sat)

4つの輪

確かにこれはにわかには信じがたいが、
convertでちょっとした処理をかけるとなんと同心円が4つ出てきた。

"There are only four circles here and they don't touch. C'mon brain you can do this."

% convert four-circles.jpg -solarize 60% four-circles-solarize60.jpg


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