新しいblogに移行しました

新ブログ "All Yout Bugs Are Belong To Ass" に移行しました!

2008-05-29

[Perl]テスト

テストを書くのは非効率的・・・そう思っていた時期が僕にもありました。。。orz

たしかにTest::Moreは効率的では無いかもしれない。
けど、それってつまり、テストコードの自動生成とか、あまり当てにならないからなんだよね。
自動生成では、細やかな注文に答えきれなかったりする。
だから、どうしても自力で億劫なテストを書かなきゃいけない。

ようするに、自力で書いたテストコードが一番信頼できるということ。

それでもやっぱり、かなり効率悪く見える。
しかし、それは自分の書いたソースに信頼性を持たせる数少ない方法の1つ(もしくは唯一の方法?)なわけだ。

ソースが信頼を得るには、それ相応の手間をかける必要があって、それを怠ると、そのソースはどんどん見放され、忘れられていく。
非常に手厚いサポート体制があったり、メンテナンスが非常に活発ならば、幾分救いようがあるかもしれない。
もっとも、そもそもそんな状態なら、テストの自動化が為されているはずだが。

そんなわけで、Test::Moreを使ったテスト駆動開発というものに、ようやく最近取り組み始めた。
まだまだ先は長い。。。

2008-05-26

[ネットライフ]Opera for Linuxに乗り換え

最近Firefoxの調子が悪く、頻繁にクラッシュする。
いっそのことと思い、ブラウザをOperaに切り替えてみた。

まず、速くて軽い。当然安定している。
半面、フォントなどのデフォルト設定のままでは非常に見苦しい。

RSSリーダーも標準搭載。メーラーの様な感覚で扱える。

心配していたJavaScriptの解釈もバッチリ。iGoogleも支障無く利用できた。

そして何より驚いたのが、ウィジェットの存在とスピードダイアルのすばらしさ。

ウィジェット自体はリッチクライアントなアプリを提供する機能。
まだまだ玉石混在という風情で、とりあえず実装したという感じを受けたが、
ウィジェット次第、利用方法次第で、利便性に大きくプラスとなるだろう。

スピードダイアル。こいつのお蔭で、異常なまでに操作性が高くなっている。
良く訪問するサイトを登録しておき、Ctrl+[1〜9]で呼び出せる。
こいつはとにかく便利。早速SEARCH.CPAN.ORG他、数サイトを登録した。

総評としては、デフォルトの見た目(特にフォント)が悪い為、ライトユーザー受けはしないだろう。
だが、拡張性・操作性・安定性のどれをとってもピカイチ。
十分満足の行くレベルだ。

[Catalyst]5.7013おかしくね?

beginメソッド使ったら、

********************************************************************************
Invalid CODE attribute: Private at /foo/bar/HogeHoge/lib/HogeHoge.pm line 52
BEGIN failed--compilation aborted at /foo/bar/HogeHoge/lib/HogeHoge.pm line 84, line 855.
Compilation failed in require at (eval 171) line 1, line 855.
********************************************************************************

と言われた。
アプリケーションクラスを見てみたら、

use parent qw/Catalyst/;

our $VERSION = '0.01';

__PACKAGE__->config( name => 'HogeHoge' );

__PACKAGE__->setup(qw/-Debug ConfigLoader Static::Simple/);


とかになってる。
どういうことだ?先週の金曜日にセットアップしたのだが。バージョンアップでもしたか?

と思い、cpanみてみたら、17日に更新されてる。
うは。Ver.5.7013涙目。

しょうがないので、5.7012と同じように

### use parent qw/Catalyst/;
use Catalyst qw/-Debug ConfigLoader Static::Simple/;

our $VERSION = '0.01';

__PACKAGE__->config( name => 'HogeHoge' );

### __PACKAGE__->setup(qw/-Debug ConfigLoader Static::Simple/);
__PACKAGE__->setup;

としてエラーを回避。

どうやらその後、5.7014がリリースされているようだけど、まだ試していない。

2008-05-22

[Perl]TPF-J構想という話。

TPF-J構想
実に素晴らしい発想。
既にPerl Hackerとして活躍されている人は、普及活動をすることで資金提供を受けられるっぽい。
逆にPerl初学者にとっては、学びやすい環境が整備されていくわけで。

流石です。