Just another Ruby porter,

〜2013年5月中旬〜


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

2013-05-11 (Sat)

最後のN行だけ表示しない

tail -n +Nがありならhead -nにもそんな機能がありそうだと思いman headしてみるとやはりあった。
GNU coreutilsのheadだとhead -n -Nで最後のN行は表示しないという意味になる。

% seq 5 | head -n -2
1
2
3

まあ意味的には最後からだから-でいいんだよな、きっと。
でもどうせ非互換になるなら別なオプションを用意してもよかったんじゃないかな。


2013-05-12 (Sun)

zshで最新のログファイルを2個だけ残してあとは消す

実はzshだと最新の2つは*(om[1,2])と表現できる。それを踏まえるとこうなる。

% for i in {0..4};touch -d @$[1367722800+i*3600*24] "foo bar.log.$i"
% ls -l
total 0
-rw-r--r-- 1 eban eban 0 2013-05-05 12:00:00 foo bar.log.0
-rw-r--r-- 1 eban eban 0 2013-05-06 12:00:00 foo bar.log.1
-rw-r--r-- 1 eban eban 0 2013-05-07 12:00:00 foo bar.log.2
-rw-r--r-- 1 eban eban 0 2013-05-08 12:00:00 foo bar.log.3
-rw-r--r-- 1 eban eban 0 2013-05-09 12:00:00 foo bar.log.4
% rm -f *(om[3,-1])
% ls -l
total 0
-rw-r--r-- 1 eban eban 0 2013-05-08 12:00:00 foo bar.log.3
-rw-r--r-- 1 eban eban 0 2013-05-09 12:00:00 foo bar.log.4

omでmtimeでソート、[3,-1]で3番目以降最後までという意味になる。

% for i in {0..4};touch -d @$[1367722800+i*3600*24] "foo bar.log.$i"
% print -l *(om)
foo bar.log.4
foo bar.log.3
foo bar.log.2
foo bar.log.1
foo bar.log.0
% print -l *(om[3,-1])
foo bar.log.2
foo bar.log.1
foo bar.log.0

2013-05-13 (Mon)

Ubuntu(x86_64)でgcc -m32

Ubuntu(x86_64)でgcc -m32を使うにはgcc-multilibパッケージを入れればいい。
ruby 1.4.6をmakeするには

% ./configure --prefix=$HOME/local --program-suffix=-1.4.6 --host=i386-linux --with-gcc='gcc -m32'
% make
% ./ruby-1.4.6 -v
ruby 1.4.6 (2000-08-16) [i386-linux]

てな感じでok。


2013-05-14 (Tue)

JCBのEdy

4月でクレジットが切れたのはいいとして、新しいカードにはEdy機能がなくなっていた。
しかたがないので古いカードのEdyだけ使っていたんだけど、なんとチャージができなくなった。
クレジットの新たな有効期限で更新すればいいと思ってたが、それすら許されない。
しょうがないから直接5千円でチャージしようとしたら、機械がエラーに。
つまりもうどうしようもない。
クレジットが切れたらEdyも使えなくなるとは。
有効期限切れのカードは破棄してくれってことなんだな。


2013-05-15 (Wed)

Edy

結局楽天のEdyカードにした。ファミマで買おうとしたら735円ですと言われてさすがに高すぎると断わった。
始まった当時でも500円だったよねえ。楽天だとポイントもついて300円。なんでこんなに違うのか。


2013-05-16 (Thu)

PS3のリモコン

転がってるリモコンのボタンをふと押してしまうのはよくあるが、
PS3のリモコンはなぜか電源ボタンじゃなくても電源ONになってしまう。
ピッとかいって結構うっとうしい。
解決策はPS3モードじゃなくてテレビモードにしておくこと。しかし忘れる。


2013-05-17 (Fri)

使ってないkernelを消す

Fedoraだとpackage-cleanupを使えばいい感じで消してくれるが、Ubuntuにはない。
でもupgradeしたときぐらいは過去の全部消してくれてもいいんじゃないかな。/bootを見てそう思った。
というわけで消そう。消す前にcommandlinefuを見てみるといっぱいあった。
だいたいインストールされてるkernelをリスト表示して、
uname -rのkernel以外を消すということをやってるようだ。
なんか最近そんなことばかりやってる気がするが、まあ気にしない。

一番わかりやすいのが これだが、awkだけでいいだろう。

aptitude remove $(dpkg -l|awk '/^ii  linux-(im|he)/{print $2}'|grep -v `uname -r`)

と思ったら あった。あれ、評価が0以下は表示されないのか。

しかし、なぞすぎてあまり評価されてない Safely remove old unused kernels in Ubuntu/Debianが一番よさげな気がした。

sudo aptitude purge ~ilinux-image-\[0-9\]\(\!`uname -r`\)

数字はextraやgenericを外すためか。

% aptitude -q search "~ilinux-image-(\!`uname -r`)"                                               
i   linux-image-3.2.0-24-generic                        - Linux kernel image for version 3.2.0 on 64 bit x86 SMP        
i   linux-image-3.2.0-25-generic                        - Linux kernel image for version 3.2.0 on 64 bit x86 SMP        
i   linux-image-3.2.0-26-generic                        - Linux kernel image for version 3.2.0 on 64 bit x86 SMP        
i   linux-image-3.2.0-27-generic                        - Linux kernel image for version 3.2.0 on 64 bit x86 SMP        
i   linux-image-3.2.0-29-generic                        - Linux kernel image for version 3.2.0 on 64 bit x86 SMP        
i   linux-image-3.2.0-30-generic                        - Linux kernel image for version 3.2.0 on 64 bit x86 SMP        
i   linux-image-3.2.0-31-generic                        - Linux kernel image for version 3.2.0 on 64 bit x86 SMP        
i   linux-image-3.2.0-32-generic                        - Linux kernel image for version 3.2.0 on 64 bit x86 SMP        
i   linux-image-3.5.0-27-generic                        - Linux kernel image for version 3.5.0 on 64 bit x86 SMP        
i A linux-image-3.8.0-21-generic                        - Linux kernel image for version 3.8.0 on 64 bit x86 SMP        
i   linux-image-extra-3.5.0-27-generic                  - Linux kernel image for version 3.5.0 on 64 bit x86 SMP        
i A linux-image-extra-3.8.0-21-generic                  - Linux kernel image for version 3.8.0 on 64 bit x86 SMP        
i   linux-image-generic                                 - Generic Linux kernel image                                    
% aptitude -q search "~ilinux-image-[0-9](\!`uname -r`)"                                          
i   linux-image-3.2.0-24-generic                        - Linux kernel image for version 3.2.0 on 64 bit x86 SMP        
i   linux-image-3.2.0-25-generic                        - Linux kernel image for version 3.2.0 on 64 bit x86 SMP        
i   linux-image-3.2.0-26-generic                        - Linux kernel image for version 3.2.0 on 64 bit x86 SMP        
i   linux-image-3.2.0-27-generic                        - Linux kernel image for version 3.2.0 on 64 bit x86 SMP        
i   linux-image-3.2.0-29-generic                        - Linux kernel image for version 3.2.0 on 64 bit x86 SMP        
i   linux-image-3.2.0-30-generic                        - Linux kernel image for version 3.2.0 on 64 bit x86 SMP        
i   linux-image-3.2.0-31-generic                        - Linux kernel image for version 3.2.0 on 64 bit x86 SMP        
i   linux-image-3.2.0-32-generic                        - Linux kernel image for version 3.2.0 on 64 bit x86 SMP        
i   linux-image-3.5.0-27-generic                        - Linux kernel image for version 3.5.0 on 64 bit x86 SMP        
i A linux-image-3.8.0-21-generic                        - Linux kernel image for version 3.8.0 on 64 bit x86 SMP        

実際に消すときは-P(--prompt)をつけたほうがいいかも。というのも

% uname -r
3.8.0-19-generic

-21がすでにあるのにuname -rがまだ-19だし、つまりkernel消す前に再起動が必要だった。
これはsafeでも防げない。


2013-05-18 (Sat)

最高気温の表示

東京の最高気温を表示する。

% curl -s http://weather.yahoo.co.jp/weather/jp/13/4410.html | awk '!i++&&$0=$NF' FS='>' RS=' \\[ ' 
25
% curl -s http://tenki.jp/forecast/city-63.html | awk '!i++&&$0=$NF' FS='>' RS='</span>℃'                
25

!i++はhead -1相当。
なんというかこうFSとRSではさんで$NFを表示するというパターンって結構万能なんじゃないだろうか。


2013-05-19 (Sun)

dnsmasqのせい?

Ubuntu 13.04になってからこうなっちゃうんだけど、dnsmasqのせいなのか?

% time ruby -rsocket -e 'IPSocket.getaddress("example")'
-e:1:in `getaddress': No such file or directory - getaddrinfo (Errno::ENOENT)
	from -e:1:in `<main>'
zsh: exit 1     ruby -rsocket -e 'IPSocket.getaddress("example")'
ruby -rsocket -e 'IPSocket.getaddress("example")'  0.01s user 0.01s system 0% cpu 10.027 total

dnsmasqを使ってないUbuntu serverだと起きない。10秒ってのもタイムアウトっぽいな。


2013-05-20 (Mon)

Logicoolのマウスのバッテリーがとうとう切れた

結局16ヶ月半。
考えてみるとeneloopを買ったまま充電せずに使っていたので、
次回切れるのはもっと先になるかもしれない。おそるべし。


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