Perlクイズを読み終えた

一ヶ月くらい前から暇をみてはPerlクイズを解いていたのだが、ここ2,3日は集中してすすめることができた。というわけで、本日終了。

最後のほうはパズルばかりでかなり手ごわいクイズが並んだが、一通りやり遂げた。

ProductName 結城浩のPerlクイズ
結城 浩
ソフトバンククリエイティブ / ?円 ( 2002-08 )


特に面白かったのはここらへん

初盤ではハッシュの操作とか正規表現なんかの問題が多かったが、特にソート関係は勉強になった。

あとは、「あらかじめ行数がわかっていなくてもランダムに行を表示する方法は特にイテレータ使ってる場合にランダムに一個選びたい場合にイイ。

chemichoっていうプログラムを書いていたときに、perlmolの部分構造マッチのメソッドがイテレータで、ヒット数を返すメソッドがなかったため、マッチした部分の中からランダムで一箇所選ぶためにわざわざ一回スキャンしてヒット数を調べてから、int(ヒット数*rand)番目を再度イテレータ使って取得するという二回同じイテレータをまわすプログラムだったという。

これって無駄だなと思っていたので、上のやり方はエレガントじゃ!と感動した。

perldoc perlvar

perlのコードを読んでると、たまに知らない変数が出てくることがあるが、$?とか$#みたいな記号のみで構成されているモノはgoogleでヒットさせにくくてイライラすることが多い

そんなときは

perldoc perlvar

で調べればいいということを知った。忘れるとアレなのでメモ。

FileHandleとIO::Fileのどちらを使うべきなのか悩んだ

perlのモジュールで悩んでみた。

オブジェクト指向を覚えてからはFileHandleモジュールを使うようにしている。今までソース読んだりして参考にしてきたモジュールが結構使っているからというのが理由なんだけど。

ただ、続初めてのperlとかはIO::File使ってるので、以前からIO::FileとFileHandleのどちらを使うのがいいのか疑問だったんだよね。

ググれば、なんかでてくると思ったんだが、それっぽい比較がでてこない。

おかしいなぁと思ってドキュメント読んだら

だって。

今まで通りFileHandleを使うことにした。

perlの次に習得するのはrubyかpythonか?

Should I Learn Python or Ruby next? (by Jeremy Zawodny)

I've been programming (when I do program) mainly in Perl for the last 10 years or so. But I've been itching to learn a new language for a while now, and the two near the top of the list are Ruby and Python.

僕は、会社にはpython本を、家にはrubyの本を置いてる。仕事として科学技術計算をするのにはpythonはいいなぁと思う。Rとの連携もいいし。でも、家での楽しみとか、興味としてのプログラミングの考え方を追求するにはrubyはchemrubyが身近な題材としてちょうどよかったので。

まぁ、最近はhaskellが面白いんですが。

盲目的に成功を仮定して何も考えず突っ走るのは自殺行為

スラドでみっけた。

客観的にみて、見えてないナァあの人は、、、っていうのを表現するのに困っていたので、「盲目的に成功を仮定して」ってあたりが響いた。

「否定することがいけない」などと考えて 盲目的に成功を仮定して何も考えず突っ走るのは自殺行為です。

経験的にはこういった状況に苦言を呈すと

「やってみないとわからないじゃないか! 100%失敗するって保障できるのか?」

とか言われる。そし実行するとほぼ100%うまくいかない。さらに経験的にはこういう発言をする人は大概同じことを繰り返す。

創薬シーン的には、合成モチベーションをあげるためのドライビングフォースとしての仮定なのか、サイエンティフィックな論理を積み上げるための仮説なのかを区別して欲しいナァと思ったりする。その上でやってみる価値がどのくらいあるのか判断できさえすれば、やってみないとわからないという言葉に重みがでるんだと思うが。

結局は、前者も後者も同じくらい重要だと思っているんだけど、この二者を区別できない人って、たまに馬券が当たると自分の競馬理論の正しさを得意げに自慢するよれたおっさんみたいな講釈をたれることが多い(経験的に)。特に9レースあたりで勝って、メインでボロ負けするみたいな。

last.fm_mp3のアーティストとかアルバムの情報をiTunesに放り込む

なかば唐突に話をはじめるが、last.fmのmp3のバージョンのタグは

 'TAGVERSION' => 'ID3v1 / ID3v2.3.0',

となっているようで、タグはきちんと埋め込まれてるのに関わらず、iTunesで読ませると、アーティストとかアルバムの情報がきちんと抽出されない。

毎回手を動かしてプロパティいじるのもあれなので調べたところ、ID3v2のタグをremoveすればとりあえずはOKらしい。

use DirHandle;

$d = new DirHandle ".";
while ($file = $d->read){
    remove_mp3tag($file,2) if $file =~ /.mp3$/;
}

蝙蝠発見

帰省したら、蝙蝠が死んでいるのを発見したヨ。全長5cmくらいでかなり小さめ。

蝙蝠

ここ数年で増えたそう、夜などカーテンに飛びついたりして遊んでいるそうだ。

portable firefox+Google syncで帰省を乗り切る

今年は早めに休暇をとって、帰省することにした。

で、ワンコと赤ちゃん連れて帰るために、荷物が増えてノートパソコン持ち歩くのがいやだけど、実家のコンピュータの環境だと、ネットのチェックしづらいので、Portable FirefoxGoogle Browser Syncを試すことにした。

もらいもののusbメモリにマイブラウザを持ち歩くというわけだ。

portable firefox

USBメモリブートが一般的になれば、KNOBな解析環境も持ち歩くようになるのかな。

ATA-USB2.0を購入

DVD-RWに焼いておいた昔の写真データをうっかり消してしまったことに気付いたので、自作本舗のムキ出しキット!を購入して、昔のHDDを引っ張り出してきてデータの吸い上げをした。

いつもだったら、筐体開けてつなげるところなんだが、最近は特に筐体を開ける気力がなくなってきてるので(年かな?)変換ケーブルに頼ってみたり。

そして4年前のちょうど今頃のタチ釣りのデータを見つけた。

今年はもう片浜あたりにはきてるみたいなので、お盆あたりが楽しみだ。

家系豚骨醤油。

つけ麺は量が多いようなので、まずはスタンダードなラーメン食べに行ってみた。エミナースから池尻のほうに歩いて5分くらいのとこ。

さむらい

周りはみんなつけ麺食べてたヨ。

ラーメン

麺は酒井製麺らしい。味はちょっと濃い目だけど、家系ってそんなもんかもとか思いながら食べた。ほうれん草多い目で頼んだほうが良かったかも。