新しいblogに移行しました

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

2008-02-27

[生活]そろそろ花粉の厳しい時期になってきた

いつも思うのだけど、花粉症って公害なんだよね?
対策品の購入費用の補填とかないのか~?

2008-02-26

[Perl]Class::Component プラグインロード直後からインスタンスを生成できた

initを使えばできる模様。
プラグイン側はだいたいこんな感じ。

package Class::Component::Plugin::DBIS;
use strict;
use warnings;
use base 'Class::Component::Plugin';
use DBIx::Simple;
use SQL::Abstract;

sub init : Method {
my ($self, $c, $args) = @_;
$c->{DBIS} = DBIx::Class->connect(
@{$self->{config}->{connect_info}}
);
$c->{DBIS}->abstract = SQL::Abstract->new;
}


で、スクリプト側で、

my @members = $c->{DBIS}->select(
'member',
['*'],
{id=>$id}
);

みたいにできる。これは便利。

2008-02-24

[生活]中掃除&部屋の模様替えをした

我が家のチビ共のおもちゃ箱の中が紙くずだらけになっていた。。。

ざっとゴミ袋1つ分くらい。ありえな~い><

[CPAN]ん~、パスワード発行してくれよ~

Who is Whoに名前とメアドが掲載された模様。
あれ、メアド!あってるじゃん!!オイラtypoしてねー!
じゃあ何でオイラにはパスワードが送られてこないんだ?

Forgot Password?に自分のCPANアカウント突っ込んでもErrorにはならないし、
「今メールでパスワード変更用チケットアドレスおくったよ!届かなかったら連絡plz!」(チョー訳)
とか言ってくれるんだが、その癖に肝心のメールは来ない(12時間待った)し、この場合の連絡先が何処なのかってのも言及が無い模様。。。
これまた困った。。。。

[Perl]Class::ComponentのPluginって

もしかして、MyClass::Plugin::FooBar というプラグインを汎用化しようと思ったら、Class::Component::Plugin::FooBar て名前にしなきゃアカンのかな。。。

なんとなくDBIx::Simpleとかプラグインにしておこうかと思ったから、気になっただけなんだけど。

たとえば、こんな感じ?

package Class::Component::Plugin::DBIS;
use strict;
use warnings;
use base 'Class::Component::Plugin';
use DBIx::Simple;
use SQL::Abstract;

sub dbis_connect : Method {
my($self, $c, $args) = @_;
my $DBIS = DBIx::Simple->connect(
@{$self->{config}->{connect_info}}
);
$DBIS->abstract = SQL::Abstract->new;
return $DBIS;
}

1;


で、これを元にMyClass用プラグインをつくったら、こうなるのかな?

package MyClass::Plugin::DBIS;
use strict;
use warnings;
usr base 'Class::Component::Plugin::DBIS';
1;


試してないけど、どうなんだろう。
もう今日は眠いから、明日試すか。。。

2/24 22:33 追記。
ばっちりうまく動いた。
でも、このソースはオススメできない。

確かに、プラグインは下記のやり方でロードできた。

use MyClass;
my $c = MyClass->new({
config => {
DBIS => {
connect_info => [qw[
dbi:mysql:myapp:mydbsv
mydbuser
mydbpass
]]
}
}
load_plugins => [qw/DBIS/]
});

でも、実際にDBからselectする場合、

my $DBIS = $c->dbis_connect;
my @members = $DBIS->select(
'member',
[qw[id name mail]],
{age=>{'>=',18}}
)->hashes;

のように、いちいちdbis_connectメソッドを呼び出してDBISインスタンスを生成しなきゃならん。これはいかにも面倒だ。しかも、毎回毎回connectしてたんじゃ、オーバーヘッドがハンパ無いことに。

オイラは、

$c->plugin('DBIS')->select(
'member',
[qw[id name mail]],
{age=>{'>=',18}}
)->hashes;

としたいのに。困った。。。

もう少しソースコード追ってみるか。。。

2008-02-22

[ニュース]MS社API公開で、朝日アサヒる?

このコメントからすると、またアサヒったのかという印象しか受けない罠。



ま、実際アサヒったんだろうが。

[CPAN]問い合わせたら、Johan Vromansからレスポンスが!

昨日ついに痺れを切らし、問い合わせをした。
もちろん、オイラ式の最強の英語でね!w

親愛なるPAUSE管理者殿へ。

オイラ、パスワードが必要なんだ。
でも、そんなもんない。:-(

オイラどうすりゃいいの?
サポートしておくれ〜。



で、今日返事があった。
なんと返してきたのは、Getopt::Longやら「Perl5デスクトップリファレンス」で有名なJohan Vromans(ヨハン・ブロマンス)氏。
氏曰く、

お前のパスワードはリセットしておく。新しいパスワードを俺のプライベート・メールアドレスに送ってくれ。新規パスワードをお前のメールアドレスに送ったぞ。


いやはや、見事な読み間違い。。。orz

オイラみたいな困ったチャン相手に、御丁寧にありがとう!Vromans!

---

2/23 0:49 追記

その後もVromansと2度ほどやりとりをするものの(途中オイラの勘違いがあったりして、Vromansに呆れられたりorz)、結局登録メールアドレスがおかしいらしい事が判明。

しかたがないので、他のメアドで再挑戦ですよ><

# Thanks, Vromans!

2008-02-19

[/.j] 「詐欺的DNSサーバ」が増加中

/.jのタレコミ

信頼に足らぬDNSが増えてきたというお話。

そもそも、DNSという仕組み自体が性善説に則っているんだから、困りもの。

とりあえず先祖がえりでhostsファイル配布なんていうネタまで飛び交う始末。。。

もっとも、碌に登録者の身辺情報も探らずにポンポンとドメイン発行しちまうレジストラが一番の問題なんだがねぇ。。。

2008-02-15

[科学]廃熱を音に変換し、冷却装置を実現

WIREDVISIONの記事。

基礎は200年前の技術らしいが、ここまで昇華させると、むしろ未来的にすら見える。
砂漠のような場所では、太陽熱を利用して薬品用冷蔵庫すら実現できるらしい。

音や熱を、効率よく電気エネルギーに変換できれば、さらに面白いことになりそうだ。

[Perl]autoboxとかいうpmがあるらしい。

autobox
忘れないうちにメモ。
レビューはそのうち追記予定。

3/5 23:05 追記
オイラ的にはあまりうれしくなさそうなモジュールだった。
要するに、unblessedな配列やらスカラーに対していろいろメソッド的に標準関数を呼べるようにする代物らしい。そう、unblessedじゃないと全く意味を為さない!
rubyっぽく書きたい人向けなんだね。これ。

[ツール]Sageを使ってみた

Firefoxのプラグインとして提供されているRSSリーダー「Sage」を使ってみた。

そもそもオイラ、Sageを使うまでは、RSSリーダーを使い込んだことが無く、せいぜいRSSに関する触り程度の知識しか持ち合わせていなかった。

そんなオイラでもSageを使えば、サクッと簡単にニュースやブログの巡回が出来ちゃう。

今ではメーラーとともに手放せないソフトの仲間入りですよ。

2008-02-13

[CPAN]返事を待つこと12日

いい加減返事きても良いんじゃないかと。

少なくともメールアドレス間違いのような初歩的なミスはしていないはず。
オイラが抜けてるのであれば、ツッコミくだされ><。

2008-02-08

[CPAN]なぜオイラにPAUSEからの返事がこないのか。

最近、某Perlハッカーな方と仕事をするようになったオイラ。
その方は、オイラのような半人前相手でも嫌な顔ひとつせず(仕事だからでしょうけど)懇切丁寧な対応をしてくださる。
おかげで非常に助かっております。

で、その方とCPANがらみのお話になった際の一幕。

オイラ「実はPAUSEアカウント取得しようとしてるんですよ。」
相手「おお、それはすばらしい。」
オイラ「ただ、もう7日間くらい待たされてまして。。。」
相手「まあ、人力なんで仕方ないですね。ところで、どんなモジュールをあげる予定何ですか?」
オイラ「この前みてもらった、Math::SexagesimalDate::XDateです。」
相手「Dateかあ。。。そりゃちょっと戦う覚悟したほうが良いかもしれませんよ。」
オイラ「ほえ?そうなんですか?」
相手「Date系はDate::FormatとかDate::Calcあたりがデファクトだから...Perlハッカーは車輪の再発明を病的に嫌う傾向にあるんで、下手にコミットすると叩かれますよ。
オイラ「え?ほんまですか?!」

もしかして、オイラがPAUSEに干されてるのって、Date::XDateのせいかな?(;゚皿゚)
Perlハッカーのみなさん!ぜひジェントリィにたのみますよ!><

2008-02-06

[CPAN]へんじがない。ただのしk(ry

もう5日も過ぎてるのに、まだメールが戻ってこない。
さすがに待たせ過ぎじゃないの?:-(

2008-02-01

[PHP]PHP Attack という話

rubyでおなじみのMatz氏のブログで、Attacking PHPなる記事が引用されている。

要するにPHPはダメな子だと言っているわけだ。
IT業界に入って最初に習得した言語がPHPであるオイラから見ても、実に的確なツッコミであると思える。

んじゃ、例えばPerlならこのツッコミにどう対応しているんだろ?
PHPの反論?も交え、両者?にコメントしていただきましょう。

> * いろんなものがfalseだったりするせいで、新たな比較演算子「===」が必要
PHP:明示的に型比較できるんだよ?いいじゃないよー!
Perl:型比較ならref()でおk。こういうところこそ関数で片付けなよ。

> * hashやlistがobjectが区別できない
PHP:foreachがしっかりしてるから、区別する必要自体ないんだから。ていうか、いちいち区別すること自体面倒じゃないのよー!
Perl:やっぱりref()でおk。でもsigilがころころ変わるのはちょっとだるいか。。。

> * オブジェクト指向機能が壊れている
PHP:何を指して壊れてるって言ってんのよー!ていうか、PHP6で良くするから勘弁してー><
Perl:一応真っ当なOOですが。権限設定機能無いのはご愛嬌><

> * lambda(無名関数)がない。create_functionはlambdaじゃない
PHP:必要なら別途ファンクション切って、それをコールすれば良いじゃない。
Perl:sub {}; でおk。てかPHP、お前なんでそんな面倒な事強要するんだよ。。。

> * short_open_tagsやらsafe_modeやらregister_globalsがonになってるかもしれない
PHP:onじゃないと使えない機能とかあるんだから、仕方ないじゃない!
Perl:そんな環境設定無いが、何か?それにしてもPHP、その格好はどうにかならんのか。目のやり場に困る。。。

> * 一貫性のない名前(str_replace,strlen,parse_strとか)
PHP:そっ、そこはらめぇ
Perl:お前涙目wwwwww

> * 引数の順番がわかりにくい(in_arrayとかstrposとか)
PHP:ちょっとー!個人の主観だけで文句いわないでよー!ちゃんと統一すべきところはしてるつもりなんだからー!in_arrayとstrstrは同じような順番で受け付けてるじゃないのよ!
Perl:まあ、こいつはポリシーとかその辺の問題じゃないか?目くじら立て過ぎだろ。

> * strpos('abcd','a')は0を返すが、0は偽である
PHP:そんなこと言うなら、=== 使えばいいじゃない!ホラ、つかいなさいよ!
Perl:indexとか、俺涙目;;ref()マンセー!!

> * PHPで書かれたたくさんのアプリがあるがどれもHTMLとロジックが分離されてない(本当?)
PHP:それは書き手が悪いのよ!アタシのせいじゃないんだから!
Perl:ある意味、これは俺も同じ問題抱えてるかもな。。。

> * 「PHPは初心者に学びやすい」と言われる。確かにそうかもしれないが、 おかげでどれだけのSQLインジェクションやらXSS脆弱性やら、 ひどいコードが放置されていることか
PHP:だーかーらー!アタシのせいじゃないんだってばー!
Perl:そうでもないんじゃないか?まあ、書き手にも問題はあるんだけどな。

* グローバル。使うんじゃないってば。
PHP:だめ〜?
Perl:だめだっての!

[CPAN]PAUSEに登録申請

CPANにPerlModuleを登録したいので、メンバー登録申請をしてみた。
ページは全部英語だし、登録内容も全部英語で書かないとダメらしい。

ま、オイラの実力をもってすれば英語なんて余裕なんだけど。
(・∀・)スンスンス-ン♪