新しい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初学者にとっては、学びやすい環境が整備されていくわけで。

流石です。

2008-05-16

[ネットライフ]ついったーランキングのお手伝い。

ikkoさんが

ついったーランキングの開発を手伝ってくれる方いませんか?もう一人じゃキツい
- http://twitter.com/ikko/statuses/812668409



などと悲鳴をあげておられたので、僭越ながら衝動8割で協力を申し出出来るか、聞いてみました。

はて、どこまで力になれるのやら。

5/19 23:56 追記。
既に今回の募集人数(?)である5人に達してしまったらしい。残念。

2008-05-10

2008-05-09

[Perl]CatalystでPOST値を取得できない件

タイトルまんまですが、致命的過ぎる問題です;;
で、色々調べてみたのですが、過去にも同様の現象に遭った方がいるようです。

・ Catalyst+POST+multipart/form-dataだと空値が取れねい
・ [Catalyst][Perl]Catalystでフォームの値が、ある条件化において正確に取れない件

で、bokutinさんが言うには、HTTP::Bodyを0.9にバージョンアップすれば直るとのこと。
...どれどれ。オイラの所はバージョンいくつかな。


# perl -MHTTP::Body -e 'print $HTTP::Body::VERSION."\n"'
0.9


         ____
      /::::::─三三─\ えっ....
    /:::::::: ( ○)三(○)\
    |::::::::::::::::::::(__人__)::::  | ________
     \:::::::::   |r┬-|  / | |          |
    ノ::::::::::::  `ー'´   \ | |          |

なんで〜!?

14:08追記。
HTTP::Bodyを1.03にアップグレードしても、現象変わらず。
こ れ は  ひ ど い

2008-05-07

[Perl]Catalystの素朴な疑問

どうしようもない程イカレポンチな疑問なんですが、Catalystで作られたアプリを継承して、拡張する際のやりかたがわからない。。。orz

例えば、


### Catアプリ
package MyApp;


としておいて、


package MyNewApp;
use base 'MyApp';


みたいにすると、MyAppのアクションが全て継承されるってことはないんだろうなあ。
そもそもそんなことは前提に無いのかな。。。

コレできるとありがたいんですが、ご存じの方教えてください><