Just another Ruby porter,


11月下旬の日記 | RDF

2014-11-24 (Mon)

シートまな板に穴があく

100円ショップで買ったものなんで期待してなかったが、
カッターナイフで雑誌を分割してたら妙な感触がしてすぱっと切れていた。
よく見てみるといろんなところが穴だらけだった。
やっぱシートまな板じゃちょっと強度的にまずいようで。
A4の工作マットは結構強いがA4の雑誌を分割するときはもう少し大きくないとなあ。
まな板が丁度いい大きさだったんだが。今度は厚めのを買うか。


2014-11-23 (Sun)

jqで日ごとの最低気温

jqでできるのかとやってみるとできた。

% jq -s -R -r 'split("\n")|map(split(" "))|group_by(.[0])|.[]|min_by(.[2]|tonumber)|join(" ")' saitamashi-201411.log
2014-11-01 21:10 14.5
2014-11-02 06:40 13.1
2014-11-03 23:50 10.0
2014-11-04 06:20 8.2
2014-11-05 04:10 8.6
2014-11-06 07:10 13.1
2014-11-07 21:10 13.2
2014-11-08 04:30 9.0
2014-11-09 10:20 12.2
2014-11-10 23:40 10.2
2014-11-11 01:50 10.1
2014-11-12 22:40 9.6
2014-11-13 23:10 6.6
2014-11-14 04:40 2.7
2014-11-15 06:00 2.4
2014-11-16 05:50 5.5
2014-11-17 06:40 3.8
2014-11-18 01:30 5.6
2014-11-19 24:00 4.3
2014-11-20 03:20 2.4
% sort -k1,1 -k3,3n saitamashi-201411.log | awk '!a[$1]++'
2014-11-01 21:10 14.5
2014-11-02 06:40 13.1
2014-11-03 23:50 10.0
2014-11-04 06:20 8.2
2014-11-05 04:10 8.6
2014-11-06 07:10 13.1
2014-11-07 21:10 13.2
2014-11-08 04:30 9.0
2014-11-09 10:20 12.2
2014-11-10 23:40 10.2
2014-11-11 01:50 10.1
2014-11-12 22:40 9.6
2014-11-13 23:10 6.6
2014-11-14 04:40 2.7
2014-11-15 06:00 2.4
2014-11-16 05:50 5.5
2014-11-17 06:40 3.8
2014-11-18 01:30 5.6
2014-11-19 24:00 4.3
2014-11-20 03:20 2.4

ちゃんと同じになった。

jqでやってることをrubyで表現するとこんな感じだ。

% ruby -e 'puts $<.map(&:split).group_by{|x|x[0]}.map{|x|x[1].min_by{|y|y[2].to_f}*" "}' saitamashi-201411.log  
2014-11-01 21:10 14.5
2014-11-02 06:40 13.1
2014-11-03 23:50 10.0
2014-11-04 06:20 8.2
2014-11-05 04:10 8.6
2014-11-06 07:10 13.1
2014-11-07 21:10 13.2
2014-11-08 04:30 9.0
2014-11-09 10:20 12.2
2014-11-10 23:40 10.2
2014-11-11 01:50 10.1
2014-11-12 22:40 9.6
2014-11-13 23:10 6.6
2014-11-14 04:40 2.7
2014-11-15 06:00 2.4
2014-11-16 05:50 5.5
2014-11-17 06:40 3.8
2014-11-18 01:30 5.6
2014-11-19 24:00 4.3
2014-11-20 03:20 2.4


2014-11-22 (Sat)

jqゴルフには-sが必須

いろいろjqゴルフに挑戦したけど、入力がある場合は-sがないと無理っぽい。

% seq 10|jq -R -r -c 'split("\n")'
["1"]
["2"]
["3"]
["4"]
["5"]
["6"]
["7"]
["8"]
["9"]
["10"]
% seq 10|jq -R -r -s -c 'split("\n")'
["1","2","3","4","5","6","7","8","9","10"]

この違い。というわけで-sもつけてください。

http://shinh.skr.jp/m/?date=20141120#p02


2014-11-21 (Fri)

短縮URLの展開2

以前のバージョンではcurlとgrepとtailを使っていたが、

% curl -sLI t.co/mRJEGu6T | grep Location: | tail -1
Location: http://support.microsoft.com/kb/2564553

curlだけでいけるとわかった。

% curl -sLI t.co/mRJEGu6T -w '%{url_effective}\n' -o /dev/null
http://support.microsoft.com/kb/2564553

こっちのほうが長いが。


2014-11-20 (Thu)

vimでkeywordとみなされる文字

*.shを編集しているときにdwとかするとなぜか.も含まれてしまう。
いつからvimがそんな挙動に変わったのか忘れたが、やっと重い腰を上げた。
まずは~/.vimrcを二分法で探してみた。やはりsyntax onが原因か。
一応:scriptnamesで確認する。

% vim -u NONE -c 'syntax on|redir!>foo.log|scriptnames|redir END|q' foo.sh
% cat foo.log; echo

  1: /usr/share/vim/vim74/syntax/syntax.vim
  2: /usr/share/vim/vim74/syntax/synload.vim
  3: /usr/share/vim/vim74/syntax/syncolor.vim
  4: /usr/share/vim/vim74/filetype.vim
  5: /usr/share/vim/vim74/syntax/sh.vim

5のsh.vimだな。中を見てみると先頭部分にこんな記述が。

" AFAICT "." should be considered part of the iskeyword.  Using iskeywords in
" syntax is dicey, so the following code permits the user to
"  g:sh_isk set to a string     : specify iskeyword.
"  g:sh_noisk exists    : don't change iskeyword
"  g:sh_noisk does not exist    : (default) append "." to iskeyword
if exists("g:sh_isk") && type(g:sh_isk) == 1    " user specifying iskeyword
 exe "setl isk=".g:sh_isk
elseif !exists("g:sh_noisk")            " optionally prevent appending '.' to iskeyword
 setl isk+=.
endif

というわけで、~/.vimrcに let g:sh_noisk=1 を追加して解決した。


11月下旬の日記 | RDF


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

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