新しいblogに移行しました

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

ラベル CPAN の投稿を表示しています。 すべての投稿を表示
ラベル CPAN の投稿を表示しています。 すべての投稿を表示

2013-05-17

[Perl]せっかくだから俺はこのMinillaを選ぶぜ

タイトルの元ネタはこれ

本題。ここに書いてあるように、
https://twitter.com/ytnobody/status/335212752857616384
Minillaつかってみた記録&べた褒めするエントリです。(Minilla作者によるエントリはこちら

1週間くらいMinillaをつかってみましたが、これからPerlモジュールをつくるのなら、Minillaはおそらく最上のツールとして選択肢に上るべきだと思いますね。

CPANにはこれまでもいくつかのモジュール作成支援ツールが登録されてます。例をあげると、

ExtUtils::MakeMaker
Module::Build
Dist::Zilla
Module::Starter
Module::Setup (しばらくこれのデフォルトフレーバーを使ってた)

などなどあるわけですが・・・(にわかCPAN Authorな僕はこのくらいしかしらないんですけど、Dist::Zilla,Module::Starter,Module::SetupがMinillaと同じいわゆる「Authoring tool」なんでしょうね)

Minillaのいいとこ


サブコマンドの直感性の高さ


よく使いそうなminilサブコマンドをあげてみると、

・new
・build
・test
・release

と、一目でみて使い方がわかりそうなものが多いです。ざっくり言うと、

minil new New::Module

とかで新しいモジュールの雛形つくってくれて、

minil build

でcpanfileやらNew::Moduleあたりのファイルを元にBuild.PLやREADME.mdあたりをつくってくれで、(大まかなイメージ。あってるかな・・・)

minil test

でテストを走らせてくれる。で、

minil release

で、そのままCPANにモジュールをアップしてくれます。開発からリリースまでの一連の流れをminilコマンド一つで面倒見てくれます。すごい。

git(特にgithub)との親和性の高さ


例えばminil testするときに、git add されていないテストファイルは実行されません。これは一見不便なように思えますが、新しくテストを書く場合、proveあたりで新しいテストファイル単品を実行すればよく、git addしてからminil testすれば、テストのcommit漏れとかなくなるはず・・・だと思ってます。

あとminil release したときに、gitで新しいtag切ってくれるの、すごく楽できていいと思います。origin がgithubだったりしても、git push --tags してくれます。

そして前述してある通り、minil buildしたときにREADME.mdを自動で吐き出してくれるので、わざわざREADME.なんとかを自分で書く必要なく、二度手間を解消できます。(今までそんなことやってたの?って言われるとわりと辛いんですけどね)


過去の財産のMinilla対応がものすごく簡単


これがもっとも驚いた特長なのですが、既存のModule::Buildベースなモジュールの開発ディレクトリで

minil migrate

してあげると、そのままMinilla対応のモジュールに早変わり。もうあとはgit pushするだけでオッケーなところまでやってくれます。
また、ExtUtils::MakeMakerにも対応しているらしく、おそらく同じコマンドを実行するだけでMinilla対応できちゃうというわけです。

とまあ、ものすごくべた褒めしてきたわけですけど、実際そのくらいによくできてます。
若干ブラックボックスっぽいところも無いわけではないんですけど、minil helpで大体の動作とか説明されてたり(まだドキュメント未整備のものも有る様ですが、特にminil help migrateの内容は、minil migrate使用前に読んでおくと、納得してminil migrateを使うことができます。)して、そこまでブラックボックスというものでもないという印象を受けました。


間違いなく、「これ使っとくといいよ!」とおすすめできるツールでしたので、ブログにて紹介させていただいた次第です。

2008-07-24

[Perl]今さらながら、Gearmanを学ぶ。

Gearmanというのは、Perlでかかれたジョブサーバー。
dangaという会社がリリースしているらしい。

log4ZIGOROu - Gearmanを使ってみたを参考に、Gearmanを触ってみた。
まだインストールしたばかりだから、コードは書いていないんだけど、ややつまずいた箇所をメモ。

先の参考ページでは

インストール
gearmand, GearmanをそれぞれCPANから入れるだけです。

と書かれている。

しかし、元記事が書かれてから1年以上(!)経過しているせいか、若干差異があった(これは仕方無い)。

現在のところだと、

# cpan Gearman::Worker
# cpan Gearman::Server

とすれば、インストールできる模様。

それ以外の差は多分なさそうなので、参考にさせていただくことに。

2008-05-26

[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-02-24

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

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

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

2008-02-22

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

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

親愛なるPAUSE管理者殿へ。

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

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



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

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


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

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

---

2/23 0:49 追記

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

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

# Thanks, Vromans!

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

[CPAN]PAUSEに登録申請

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

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