〜2010年12月上旬〜
2200通ほど。先月忘れていることに気づいた。
reverseを使わないとするとunpackぐらいですねえ。
>> n = 4 => 4 >> (0..2**n-1).map{|e| e.chr.unpack("b#{n}")[0].to_i(2)} => [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]
Ubuntuでman install infoと実行したらinstall-infoが出てきて驚いた。
一方FreeBSDでman install infoと実行するとinstall-infoじゃなくて、
man install, man infoが続けて実行される感じになる。
単純だけどなかなかいいアイデア。
画面に表示されるメッセージをファイルに落としてるときはタイムスタンプがないから、
そんなとき使えそうだ。
まあ、でもおれだったら
% tail -f file | awk '$0=strftime("%F %T%z\t")$0'
とするかな。
find . -mtime +1とやると1日以上古いファイルが見つけてくれるとふつう思うが、
実際は2日以上のファイルが対象となる。なぜか1日ずれるのが仕様らしい。
These tests are mainly useful with ranges (`+N' and `-N'). -- Test: -atime n -- Test: -ctime n -- Test: -mtime n True if the file was last accessed (or its status changed, or it was modified) N*24 hours ago. The number of 24-hour periods since the file's timestamp is always rounded down; therefore 0 means "less than 24 hours ago", 1 means "between 24 and 48 hours ago", and so forth. Fractional values are supported but this only really makes sense for the case where ranges (`+N' and `-N') are used.
24時間の幅があるので0からカウントすると一日ずれちゃうってことなんだな。
何がいいたいかというと30日以上古いファイルを検索するには
+30じゃなくて+29にしないとだめってことだ。
なんでメールが来るのか悩んだよ。
@rubyciは
twitterfeedを使っているんだけど、
twitterfeed側の制約で30分間隔で最新の5個までしかポストしないので取りこぼしがある。
無制限だとtwitter側のlimitでポストできなくなるしねえ。
だったら30分で1個にしちゃってもいいのかもなあ。
ruby-talk MLに1.8.5の話題が出てなんだと思ったらspamだった。
直前ににHello, Everyone!とか挨拶してるメールもあった。
律儀なspammerだな。って手動かよ。これは防げないな。
spamなのでリンクしない。
- About
- screen-session is a collection of tools for GNU Screen, including session saver.
session saver currently supports saving of: layouts, scrollbacks, titles, filters and is able to restart programs run in windows. It recognizes groups and regular windows. Currently there is no support for serial and telnet window types.
<, =, >の並びがASCIIコードで60, 61, 62だとは気づかなかった。1B届かなかった。
#!ruby -an a,b=$F puts a+" "+"=><"[a.to_i<=>b.to_i,1]+" "+b #!ruby -apl a,b=$F $_=a+" "+"=><"[a.to_i<=>b.to_i,1]+" "+b #!ruby -apl a,b=$F.map &:to_i $_=[a," ","=><"[a<=>b,1]," ",b] #!ruby -apl a,b=$F $_=a+" "+"=><"[a.hex<=>b.hex,1]+" "+b #!ruby -ap a,b=$F sub" "," "+"=><"[a.hex<=>b.hex,1]+" " #!ruby -p ~/ / sub" "," "+"=><"[$`.hex<=>$'.hex,1]+" " #!ruby -p sub(/ /){$&+"=><"[$`.hex<=>$'.hex,1]+$&} #!ruby -ap sub(/ /){" %c "%"=><"[eval$F*"<=>"]} #!ruby -ap $_[/ /]=" %c "%"=><"[eval$F*"<=>"] #!ruby -an puts$F*" %c "%"=><"[eval$F*"<=>"] #!ruby -apl $_=$F*" %c "%"=><"[eval$F*"<=>"] 番外: 逆に長くなった #!ruby -apl $_=$F*"=><"[eval($F*"<=>"),1].center(3) #!ruby -apl $_=$F*"=><"[eval$F*"<=>"].chr.center(3)
よくもまあ、こんだけ試したもんだな。
なんか無駄に豪華な方法が最初に出たからか、いっぱい集まったな。
折角なので古い順に。
"BenefitsAndFeatures".split(/([[:upper:]][[:lower:]]*)/).delete_if(&:empty?).join("-") "BenefitsAndFeatures".underscore.split('_').map(&:capitalize).join('-') "BenefitsAndFeatures".gsub(/[A-Z]/) { |c| "-#{c}" }).reverse.chomp('-').reverse "BenefitsAndFeatures".gsub(/\w(?=[A-Z])/){|match| "#{match}-"} "BenefitsAndFeatures".split(/(?=[A-Z])/).join('-') "BenefitsAndFeatures".gsub(/(?<=[[:lower:]])[[:upper:]]+/, '-\\&') "BenefitsAndFeatures".scan(/[[:upper:]]+[[:lower:]]+/).join('-') "BenefitsAndFeatures".gsub( /.(?=[[:upper:]])/, '\&-' ) "BenefitsAndFeatures".gsub /([a-z])([A-Z])/ , '\1-\2'
思い付いたのはこんな感じだが、ちゃんと上にも出てた。
"BenefitsAndFeatures".scan(/[A-Z][a-z]+/)*"-"
zshでソートしてみたら思わぬバグが。
% a=(3 2 1 0 -1 -2 -3); echo ${(n)a} -1 -2 -3 0 1 2 3
(n)で数値として扱うんだから、-3 -2 -1 0 1 2 3にならないと変だろう。
この問題で発覚。