scipy+matplotlib+ipython

綺麗なグラフが描きたいのでmatplotlibを触ってみたりしている。あとdensity plotとかも描きたいのでscipyとかチョコチョコ入れてみたり。対話的に処理すんならipythonがええよって書いてあったので、使ってみてるけどまだよさがわかってない。もう少し使ってみないと。

で、明日はU隊長の実家に行くので、今は携帯用のレッツノートにcpanminiのアップデートをしている。あとはpython関係も全部入れてドキュメントのpdfもusbメモリに入れといた。あそこは田舎すぎてネットにつながらん(携帯もソフトバンクは不可)ので。

svkも入れときゃよかった。

こんな感じで、いつも集中して開発するぞとか思って旅立つんだけど、結局酒呑んで酔いどれてんだよなぁ。

ヨコゼキ侮れん!

てか、ヨコゼキ最高!あの巨大冷蔵庫に入るとワクワクすんね。

一匹の鯨

伊豆長岡駅そばの一匹の鯨。ラーメン食うぞ!-静岡東部版-みて気になったので行ってきた。

一匹の鯨

ネーミングのせいかわからんが、ちょっとメニュー構成を把握するのに時間がかかった(そのせいで店員さんをちょっと待たせてしまった。)

座敷もあって子連れにもやさしい。

オーダーしたのはあっさりの太麺(左)とU隊長の頼んだ細麺(右)。太麺は鶏系、細麺は魚介系。

鶏のコク、あっさりらーめん 魚介が香る、あっさりらーめん

ちょっと塩味がきつかったので、スープの絡む細麺は最後のほうきつそうだったかな。太麺が正解かも。最後まで飽きなかったし。

一匹の鯨

次寄ることがあったら、三つ割り菊行くかどうか悩むナァ(こっちは蕎麦だけど)。

今更ながらライブドアに一発クリップのショートカットがあることを知った

設定いじってたらうっかり見つけた。早速iってショートカットを使えるようにしてIPC(イッパツクリップ)ってタグ振るようにした。

が、クリップのレートのとこにRSSフィードのレートが入ってしまうのが気になる。このクリップのレートはどういう風に使うんじゃろか?

さらに、クリップブラウザってのも発見した。ちょっと前にクリップしたエントリをもういちど見たいって場合には便利かな。1画面分(40件)までだったらこれで探すかも。それより前のクリップだったらタグかなぁ。

で、ふと考えたのが、

超整理法みたいな時系列の並びの記憶はいつまで優勢で、どのくらい古い記憶になるとタグのほうが探しやすくなるんだろうか?

つまり情報の量と時系列的な検索とタグによる検索のバランスはどうなってるんだろうか?

最近たくさんのエントリをフロー読みするようになって、一昨日くらいのエントリもタグつけてないと探せんようになった(僕は)。情報の量が増えたから記憶の整理ができる時間軸のレンジが狭まったのか、覚える気がなくなったから、フロー読みができるようになったのか、、、うーんどうなんだろう?

論文情報ポッドキャスティング

錬金術師の苦悩 - ひさしぶりの投稿

最近は、いろいろなjounalでPodcastの配信を始めているので、通勤のお供や、英語の勉強に最適です。

Natureとか医学系論文はポッドキャストしてるんだ、、、、知らんかった。早速通勤で聴こう

J.C.I.Mとかもポッドキャスティングしてくれんかな。

Spiffyでテンプレートメソッドを書いてみた

Kwikiで使われているSpiffyが気になったので テンプレートメソッドを書いてみた。

-Baseで継承すると、$self=shiftとパッケージの最後に1;をつけなくてもよくなるので、コード量が減るらしい

AbstractDisplay.pm

package AbstractDisplay;

use Spiffy -Base;

stub 'open';
stub 'print';
stub 'close';

sub display {
        $self->open;
        for my $i (0..4) {
                $self->print;
        }
        $self->close;
}

CharDisplay.pm

package CharDisplay;
use AbstractDisplay -Base;

sub new {
   my $char = shift;
   bless {ch => $char}, $self;
}

sub open {
   print "<<";
}

sub print {
   print "$self->{ch}";
}

sub close {
   print ">>\n";
}

StringDisplay.pm

package StringDisplay;
use AbstractDisplay -Base;

sub new {
   my $str = shift;
   my $w = length($str);
   bless {
       string => $str,
       width => $w
       }, $self;
}

sub open {
   $self->_printline;
}

sub print {
   print "|$self->{string}|\n";
}

sub close {
   $self->_printline;
}

sub _printline {
   print "+";
   for my $i (0..$self->{width}-1) {
       print "-";
   }
   print "+\n";
}

main.pl

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#!/usr/bin/perl
use strict;

use CharDisplay;
use StringDisplay;

my $d1 = CharDisplay->new('H');
my $d2 = StringDisplay->new("Hello, World.");
my $d3 = StringDisplay->new("るるるるる");

$d1->display;
$d2->display;
$d3->display;

で実行してみる。

<<HHHHH>>
+-------------+
|Hello, World.|
|Hello, World.|
|Hello, World.|
|Hello, World.|
|Hello, World.|
+-------------+
+---------------+
|るるるるる|
|るるるるる|
|るるるるる|
|るるるるる|
|るるるるる|
+---------------+

抽象クラスのstubは実装をサブクラスに任すときに使う。サブクラスで実装されてないとdieする。

試しに、CharDisplayのprintメソッドがないと

Method print in package AbstractDisplay must be subclassed at \
/usr/lib/perl5/site_perl/5.8.8/Spiffy.pm line 279
        Spiffy::__ANON__('CharDisplay=HASH(0x9a49c28)') \
        called at AbstractDisplay.pm line 12
        AbstractDisplay::display('CharDisplay=HASH(0x9a49c28)') \
        called at ./main.pl line 11

とエラー吐いてとまる。

コードの見通しは良くなる感じ(もうちょっと複雑なことやってみないと分からんけど。)

Xactiがちょっと欲しくなってきた

デジカメは一人一台+デジタルビデオはあるんだけど、ちょっとした日常のひとコマを切り取るのにちょうどいい動画デジカメはないかなぁと物色してたら

欲しくなった。HD1,HD2だったらハイビジョンデジタルビデオ買うからこのぐらいのスペックと値段は結構いいかも。

週末電気屋で実機調査な予感。

Play with the Changes

ジャズトロ好きならきっと気に入ると思うよ(ボソッと)。ベースが際だってる感じで、ビニョ―ン感っていうか、スイングっぽいうねりが気持ちいい。

ProductName Play With the Changes (Dig)
4hero
Milan Records / 2040円 ( 2007-02-27 )


ジャズトロよりは渋め。そしてボーカルが多め。

正直ムンベーっぽさはない。Bed Of Rosesくらいなもんか。

聴き飽きしなさそうな感じ、というかたいして聴いてもいないのにそう感じさせるのは多分クォリティーが高いんでしょう。

ちなみにこのアルバムでの僕の一番はThe Awakeningだ。ポエトリーっぽいボーカルにゆったりうねるリズムがたまらん。

WWW::CloudCreatorがいい感じ

いつもタグクラウド作るのにHTML::TagCloudとかHTML::TagCloud::Extendedを使っていたのだが、WWW::CloudCreatorというモジュールを教えてもらったのでいじってみた。

おおまかな違いはHTML::TagCloudはhtml(とcss)をそのまま吐くのに対し、WWW::CloudCreatorはタグ名とカウントとスタイル要素を戻してくる。

だから、TTと組み合わせるにはWWW::CloudCreatorのほうが良い感じ。

ただし、配列で戻してくるのでTTが

[% FOREACH tag = tagcloud %]
<span style="[% tag.2 %]">
<a href="[% Catalyst.uri_for('/bookmarks/') %]/[% tag.0 %]">
[% tag.0 %]([% tag.1 %])
</a>
</span>
[% END %]

となってちょっとわかりにくい気が。

あと、WWW::CloudCreatorはサイズだけじゃなくて色も変化させることができるんだが、こっちはちょっとバグってた。

81行目あたりをhexdecでレンジを揃えて82行目でdechex二度がけ。

my $ihex = hexdec($coldarray[$i]) + ($colorstep[$i] * $fraction);
my $decihex = dechex(dechex( $ihex ));

dechex関数も直す。負の方向にグラデーションがかかる場合にa-fがdechexに渡ったら無視するように。

sub dechex {
   if($_[0] =~ /\d+/){
           return sprintf '%x', $_[0];
   } else {
           return $_[0];
   }
}

これでうまくいってるような気がするけど。

wcc

色のグラデーションはタグの頻度ではなくて、タグ間の関連性とかの違う軸ででかけるようにしたいなぁ。

ヤマボクトリップ2007

今シーズンはまるで滑ってないわけだが、苗場、赤倉温泉に続いていつのも山田牧場に行ってきた(ヤマボクトリップ)

到着して一言、

ウワー、雪がねー。

正直、一昨年の年末のヤマボクよりも雪が少ない。

前日降ったにも関わらず、上級コースは笹が見えまくりで滑れそうなかんじではニャイ(でも滑ったけど)。しかもところどころガードレール見えてるし(擦ったけど)。後で宿の人に聞いたら、今シーズンは上級コースがまともに滑れる日が一日もなかったそうだ。

初日は吹雪いてたが、スコップ担いで、ビデオ持ってキッカー作って飛びまくり。例年より雪が少ないのでキッカーポイント探すのに苦労した。カメラは持って行ってなかったので写真は撮ってないが、吹雪いていると微妙に視界が悪く、樹氷が綺麗で、一人乗りリフトなんか乗ると幻想的で綺麗だ。一度は薦めたい。

二日目は前日とは違い快晴。しかも少しだけ積もったので、スピード出すと雪が舞うのできもちいい。右側のリフト降りたとこで撮影したらこんな感じ。

山田牧場 山田牧場

ちょっと厳しいそうな林間とか怪しそうな新雪を隠れキャラに気をつけながら滑りまくり。数少ない今シーズンのトリップの中で一番。

昼は、二日ともコンパス。前日はチーズとベーコンの焼きカレーを食べたので、二日目はベーコンと杏のピザ(蕎麦粉)とカフェオレ。

ベーコンと杏のピザ

ベーコンに杏はどうかなと思ったけど、鴨肉にフルーツソースかけた感じでかなりいい。やっぱ、キッチンコンパスうめー。

山田牧場

ヤマボクサイコー!

でも、今シーズン滑り納めな気がする。

TTでサブルーチン

TTにクロージャを渡せるということを知らなかったので、ドキュメントを読んだ。

Catalystだとコントローラーでクロージャ作ってTTに渡せばプラグイン化するまでもないちょっとした処理はOKっぽい。

Virtual Methodsはpythonみたいだ。メソッドとして使いたいものはこっちで書いたほうがいい気がするが、プラグイン化するのが前提っぽいのでお手軽感がちょっと減る。

というわけで、上記のどちらかを使えば、PERLブロックはあまり使わなくてもいいような気がしてきた。この前のPERLブロックは後で書き直す。