Just another Ruby porter,

〜2009年10月下旬〜


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

2009-10-21 (Wed)

[Tips] ROXTermのOpen URL in browser

gnome-terminalでもURLらしいものは右クリックでbrowserへ飛ばせるが、
ROXTermの場合はクリックした場所がホスト名だとトップになるようだ。
つまり

https://jarp.does.notwork.org/jarp/diary/

の場合は

https://jarp.does.notwork.org/jarp/

になる。でdiaryの部分で右クリックすればちゃんと全体のURLになる。
これは結構かしこい。
最初は意味がわからずなんかたまにトップへ飛ばされるなあバグか?と思っていた。


2009-10-22 (Thu)

[Golf] Count diamonds level 3

ダイアを数える三部作最後の問題。うっかりsubmitわすれてたが、
まあどうでもいい記録なのでしなくて正解か。

$/=gets
loop{gets;i=0;i+=1while sub! /\*(.{39})\* \*/m,' \1   ';p i}

要するに

 *
* *

という組を数えているだけ。基本はみんなそんな感じ。上側か下側かぐらいで。

Rubyの トップ を見ると下側のほうが有利みたい。

p gsub!('* *'){$'[39]}.count'4'while gets'
-'

$'を使うのはうまいなあ。でも'4'は謎すぎる。

あ、そうか。わかった。$'[39]は"*"ならアスキーコードの42、" "なら32なので、
"4"をcountすればいいんだ。頭よすぎ。

% ruby -e 'p "".sub(""){42}'  
"42"

2009-10-23 (Fri)

[DQ9] DQ9終了

まったく終わった感がない。


2009-10-24 (Sat)

[Golf] Count diamonds level 3

flogさんの解。なぜか*がどこにもなく正規表現の中に謎の改行3つ。
どうしてそんなものを数えるだけで通るのか?

3つといえば

 *
* *

の部分は現在行と次の行をうまく演算して"***"にできれば
1行に扱えて楽だよなあとbash版を考えていたときに思ったが、
これもそのようで。"*"と" "はex-orで改行になる。

% perl -le 'print (ord("*") ^ ord(" "))'
10
% perl -e 'print "*" ^ " "' |od -c
0000000  \n
0000001

たまたま改行になったから不思議に思えたが、なるほどねえ。
$/.$_で1行ずれるので$_^=$/.$_で全行次行とのex-orになり、
上下対称の下側も同じ結果になるので2で割れば解となる。
賢い。


2009-10-25 (Sun)

[Fedora] Fedora 12 betaのiso imageのサイズが減少

Fedoraのiso imageのサイズは9が3.3GB, 10,11が3.4GBなのに、
12 betaは2.9GBと減少しているのに気づいた。

Fedora 12 Beta now available! という記事によるとRPMはgzipじゃなくて
xzで圧縮するようになったようだ。たぶんこれが原因だろうな。


2009-10-26 (Mon)

[Tips] To print a specific line from a file

結構高ポイントだが、

sed -n 5p <file>

これは逆に考えると

sed '5!d' <file>

となる。5行目だけ表示するってことは5行目以外を削除と同じ。
golfではこの考えかたは有効。


2009-10-27 (Tue)

[Ruby] Mail

なんともぐぐりにくい名前だよね。損だと思うよ。

なぜか常にtlsになってしまうのでサーバはgmailでちょっと試してみた。
localhostで試すと、どうせ そこに飛んでくわけだし

require 'rubygems'
require 'mail'

Mail.defaults do
  smtp 'smtp.gmail.com', 587
  user 'username@gmail.com'
  pass 'password'
end

mail = Mail.new do
  from 'username@gmail.com'
  to 'username@gmail.com'
  subject 'test'
  body "test"
end

mail.deliver!

DSLだな。わかりやすいね。

ref: [ruby-talk:348825]


2009-10-28 (Wed)

[mswin32] VC9+msvcrt.dll

これはシンボルのファイルを作ればgrepで簡単にわかる。こんな感じで:

% grep -vwf msvcrt-xp.sym ruby-msvcrt-vc9.sym 
_except_handler4_common
_ftol2
_ftol2_sse

ruby-msvcrt-vc9.symにはあってmsvcrt-xp.symにはない行を抜き出すことを意味する。


2009-10-29 (Thu)

[ニコ動] ニコニコ動画(9)

ニコ動用のぐりもんや拡張は特に問題なく動いてるようなので一安心。
しかしあのランキングはどうなんだろう。見づらいよね。
ランキング動画にも影響するんかな。


2009-10-30 (Fri)

[Ubuntu] Ubuntu 9.10

会社で2つほどインストールして問題なかったので、家のPCにも入れた。
30分ぐらい。簡単にインストールできるのはいいが、
Fedoraを認識してくれないのでgrubのメニューに出てこない。
たぶんFedoraはlvmにインストールしてるからだろう。
今まではそれでもgrubのコマンドでconfigfileすれば読めたんだけど、
Ubuntu 9.10はgrub2になっていてまったく読めない。

というわけでFedora 11が起動しなくなってしまった。つづく。


2009-10-31 (Sat)

[Fedora] 起動できなくなったFedora 11を復活させる

UbuntuのGRUBじゃ読めなくても適当に古いGRUBで起動させれば読めるわけで、
本家からgrub-0.97-i386-pc.ext2fsを取ってきて、
USBフラッシュにdd if=grub-0.97-i386-pc.ext2fs of=/dev/sddで書き込み。
これで立ち上がると思ったらなぜか無視される。
BIOSの設定見てもUSB-HDDが先なのに変だなと思ったが、
考えてみたら本物のUSB-HDDもつながっているのだった。
そっちかよ!と外してやっとGRUBのコマンドラインが出てきた。
あとはconfigfileでmenu.lstを読み込んでokのはずだが、
なぜかエラーになる。よく見るとsdbなのでhd1のはずだが、hd2になっている。
なるほどUSBフラッシュのほうがhd1扱いなんだなと、
eでメニューを書き換えてhd2に変更。これでやっと立ち上がった。

今度はUbuntuのメニューにFedora 11を載せる方法を調べないと。


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