タグ

ブックマーク / charsbar.hatenadiary.org (80)

  • CLI::Dispatch 0.05 - Charsbar::Note

    ゆうべApp::Cmdの作者であるrjbs氏に呼ばれて、「いまのCLI::Dispatchだと、インストールしたあと、一部のコマンドでしか使われていない依存モジュールがバージョンアップで壊れたりすると、実際にそのコマンドを実行するまで壊れてることがわかんないよね」と指摘されたので、対策を入れてみました。 問題となるのはこんな例のとき。 package MyApp::Script::DoSomething; use strict; use warnings; use Broken::Module; sub run { ... } 1; =head1 NAME MyApp::Script::DoSomething - do something =cutCLI::Dispatchは(App::Cmdと違って/App::CLIと同じく)コマンドを実行したりコマンド一覧を表示するときには一部のコマン

    CLI::Dispatch 0.05 - Charsbar::Note
    otsune
    otsune 2009/07/16
  • 昨年一年に更新された名前空間上位300傑 - Charsbar::Note

    ちなみに連載第11回で利用した2008年7月から2009年6月までに更新があった名前空間リストの上位300傑はこんな感じです。アップロードされたものの拡張子を判定したりはしていないので、細かいところでは誤差があるかもしれませんが、おおよその傾向をつかむうえでは問題ないでしょう。YAPCで話すネタに困っている方は、この辺から適当に名前をピックアップするとよいかもしれません。 905: Net 614: Catalyst 532: POE 515: WWW 493: Test 434: App 401: POE-Component 369: HTML 355: Data 351: MooseX 318: XML 262: Padre 257: DBIx 252: Class 249: Devel 242: Acme 241: CGI 241: Text 231: CPAN 226: Parse

    昨年一年に更新された名前空間上位300傑 - Charsbar::Note
    otsune
    otsune 2009/07/14
  • Test::系のモジュールを書いている人は要注意 - Charsbar::Note

    詳細はuse Perl;の記事とコメントにある通りですが、最新の開発版Test::Moreでサブテストの導入が始まっています。これをサポートするためにTest::Builderに修正が加わったため、Test::Builder->newがシングルトンを返すことを前提にしているテスト系モジュールは今後期待した動作をしなくなる可能性があります。 http://use.perl.org/~Ovid/journal/39193 dagolden氏が用意したfalse-positiveなものを含むリストによると、あぶないのはこのあたり。 GFUJI/Test-LeakTrace-0.08.tar.gz GFUJI/Test-LeakTrace-0.09.tar.gz KOGA/Test-Perl-Metrics-Simple-0.1.tar.gz MIYAGAWA/Test-Synopsis-0.04

    Test::系のモジュールを書いている人は要注意 - Charsbar::Note
    otsune
    otsune 2009/07/01
  • META.ymlの件 - Charsbar::Note

    パッケージャ、ツールチェーンまわりに手を出すのであれば、こんなのもある、ということは覚えておいた方がいい。 http://search.cpan.org/dist/JSON-CPAN-Meta/lib/JSON/CPAN/Meta.pm 動機付けについてはこのあたりね。 http://rjbs.manxome.org/rubric/entry/1736 http://www.mail-archive.com/cpan-workers@perl.org/msg00162.html この辺の話題は関心のある人たちが定期的に議論しているので、気になるなら上のcpan-workersとかcpan-discussのように関係のありそうなメーリングリストに入っておくといいんじゃないかな。 cf: http://d.hatena.ne.jp/tokuhirom/20090622/1245635045 h

    META.ymlの件 - Charsbar::Note
    otsune
    otsune 2009/06/22
  • モダンPerl連載第9回 - Charsbar::Note

    今回は前回最後に予告した通りにJiftyネタ。『まるごとPerl!』に書いた話はなるべく飛ばして、これまであまり説明してこなかった部分のみ抽出するようにしてみましたが、CatalystにしろJiftyにしろ、この連載で全部を書ききるのはもちろん無理な話なので、できればまた別の機会にもう少しきちんと説明したいものだと思います。 ともあれ、コードは文中にも書いた通りにgithubにあげておきました。userとuser_idの使い分けなど、マニュアルの細かいところまで読まないとわかりづらいところもあると思いますが、codereposにあるJipotterともども参考になればさいわいです。 http://gihyo.jp/dev/serial/01/modern-perl/0009 PS. 長くなるので文中では説明しませんでしたが、Jifty付属の認証プラグインにはアクティべーションメールのや

    モダンPerl連載第9回 - Charsbar::Note
    otsune
    otsune 2009/06/16
  • DBD::SQLite 1.20 - Charsbar::Note

    長らくバグが放置されたままだったDBD::SQLiteですが、先日AliasことAdam Kennedyがメンテナを引き継いだのを受けて、いま何人かのCPAN Authorsが集まってごりごり直しています。tokuhiromさんのところでパッチが紹介されていたもののように、有名どころのバグはあらかた潰し終わって、これからSQLiteのソースをamalgamationに変えたり、unicodeまわりのバグを直したり、という作業が行われる予定なのですが、とりあえず一区切りということで、正式版の1.20が出ています。 Class::DBI、Jifty::DBI、Rose::DB、Data::ObjectDriverなどをお使いの方は、ぜひアップデートしてみてください(以上のものは、私のところで全部テストが通ることを確認済みです。ほかにテストしておいてほしいものがあったらご一報をば)。 追記:DO

    DBD::SQLite 1.20 - Charsbar::Note
    otsune
    otsune 2009/04/10
  • Test::Classy 0.07 - Charsbar::Note

    tokuhiromさんが嘆いておられたので日語対応してみました。utf8プラグマの有無でどうするかを決めるというかなり横着な実装ですが、こんな感じのテストモジュール(t/lib/MyApp/Test/Basic.pm)を書いて、 package MyApp::Test::Basic; use strict; use warnings; use utf8; use Test::Classy::Base; sub 日語 : Test { my $class = shift; ok 1, $class->message('日語も通るようになったよ'); } 1;こんなテスト(t/test.t)を用意すると、 use strict; use warnings; use lib 't/lib'; use Test::Classy; load_tests_from 'MyApp::Test';

    Test::Classy 0.07 - Charsbar::Note
    otsune
    otsune 2009/04/10
  • 「モダンPerlの世界へようこそ」はじめました - Charsbar::Note

    先日連載したMojoの特集に引き続き、今度はgihyo.jpで「モダンPerl」の連載をさせてもらえることになりました。 http://gihyo.jp/dev/serial/01/modern-perl 今回は連載第1回ということでいささか煽り成分を多めにしてありますが、牧さんの名誉のために先に書いておきますと、『モダンPerl入門』は「(ご人いわく)六木ヒルズの38階と30階を渡り歩いた上に大事件に巻き込ませた黒幕の」趣味・嗜好を紹介しているだけのではありません。その辺は今後連載のなかできちんと説明していきますが、今回の記事だけを読んで変な勘違いをする人が出るといけないので、ここでも繰り返し明言しておきたいと思います。 [追記]それともうひとつ、今回の記事で名前を出しそびれてしまいましたが、2008年12月発売の『WEB+DB PRESS Vol.48』には特集記事としてYapp

    「モダンPerlの世界へようこそ」はじめました - Charsbar::Note
    otsune
    otsune 2009/02/24
  • Plagger::Plugin::CustomFeed::MixiScraperのカレンダー処理 - Charsbar::Note

    id:mad-caponeさんから、CF::MSでカレンダーのデータを取ろうとすると日付情報が入らないバグがあるとのご指摘がありました。 http://d.hatena.ne.jp/mad-capone/20090211/1234337425 WWW::Mixi::Scraperのテストは通っていたのと、自分の環境で試したときは特に問題なく日付を取得できていたので当初は別の問題だと思いこんでいたのですが、fetch_bodyをオフにしてイベントの詳細を取得しないようにしたことで問題が再現しました。 基的にはWWW::Mixi::Scraperのshow_calendarとview_eventで返ってくる日付の書式が違うために起こる問題で、最近show_logなどでも日付の書式が変わって問題になっていたので来WWW::Mixi::Scraper側で抜的な対策を取るべきなのですが、影響範

    Plagger::Plugin::CustomFeed::MixiScraperのカレンダー処理 - Charsbar::Note
  • メソッドチェーンの話 - Charsbar::Note

    たしかに使い方によっては非常に読みづらくなるのは事実だから、「あまり多用しないでほしい」という気持ちもわからないではない。 でも、このサンプルでそれを言うのはあんまりじゃなかろうか。 以下のようなメソッドチェーンは読むのが困難だ。 my $loader = Loader->new; my $book = $loader->load( 'Book' )->build loadメソッドが自分自身( $loader )を返却して、そこからbuildが呼ばれたのか、他のオブジェクトが返却され、そこからbuildがよばれたのかがわからない。 だから、あんまりメソッドチェーンを多用しないでほしい。Mojoのソースコードを読んでいてそう思った。 http://d.hatena.ne.jp/perlcodesample/20090217/1233844169 ふたつめの文をそのまま英語として、名詞と動詞に

    メソッドチェーンの話 - Charsbar::Note
    otsune
    otsune 2009/02/06
  • Mojoの連載 - Charsbar::Note

    こちらではアナウンスしていませんでしたが、お正月からgihyo.jpに連載させていただいていたMojoの特集記事が最後までたどりつきましたのでご報告。「そんなんやってたんだ」と驚かれた方は下記のリンクから一気にどうぞ。 http://gihyo.jp/dev/feature/01/mojo/ 11月末にお話をいただいたときは終わるまで2ヶ月あるから多少は開発も進むだろうし、もっとおすすめしやすい状況になるかなと期待していたのですが、あろうことか、12月初頭に原作者のsri氏がダウンしてしまいまして。えらく戻ってこないので最初はそのまま冬期休暇にでも入ったのかと思ったら、しまいには手術することになったというのですから、ご人もさぞ大変だったろうと思いますが、こちらも胃の痛い毎日だったことです。結局昨日、ぎりぎりまで引き延ばしていた最後の原稿を提出した直後に復帰の報告があったので一安心というと

    Mojoの連載 - Charsbar::Note
    otsune
    otsune 2009/01/30
  • WWW::Mixi::Scraper 0.22 - Charsbar::Note

    mixiが足あとページをリニューアルしたので対応版を出しました。 今回の変更で足あとの日付から年の情報が消えてしまったため、Plaggerで足あとを追いかけていた人は日付情報が正しく入らなくなります。暫定的にPlagger::Plugin::CustomFeed::MixiScraperの方をいじってエントリのタイトルに日付情報を追加しておきましたが、これでいいのかは微妙なところ。もし使っている方がいるようでしたらよいように手直ししておいてください。

    WWW::Mixi::Scraper 0.22 - Charsbar::Note
  • Devel::FindNamespaces - Charsbar::Note

    あるモジュールがどんなモジュールを読み込んでいるのかを、名前空間の増分をチェックすることで調べようというモジュール。モジュールとかコマンドとか、名前を変えるかもしれないのでまだCPANにはアップしていませんが、コマンドラインから dump_used_namespaces CGIすると、 APR::Pool Apache2::RequestIO Apache2::RequestRec Apache2::RequestUtil Apache2::Response CGI::Util CGITempFile Fh MacPerl MultipartBuffer Scalar::Util constant overload vars warnings::registerこんな結果が出力される寸法。興味のある方は下記からどうぞ。 http://coderepos.org/share/browser/

    Devel::FindNamespaces - Charsbar::Note
    otsune
    otsune 2008/11/28
  • CLI::Dispatch 0.01 - Charsbar::Note

    というのを書いた。基的な使い方はApp::CLI(や、ユーザレベルではApp::Cmd)とほとんど同じで、ディスパッチャとなるスクリプトにコマンド名(と、必要なら追加の引数やオプション)を渡してやると、そのコマンドが実行される、というシロモノ。 具体例をあげると、こんな感じのコマンド(lib/MyScript/ConvertMe.pm)と、 package MyScript::ConvertMe; use strict; use warnings; use base qw( CLI::Dispatch::Command ); use Encode; sub options {qw( from|encode=s to|decode=s )} sub run { my ($self, @args) = @_; unless (@args) { $self->logger(1) unless

    CLI::Dispatch 0.01 - Charsbar::Note
    otsune
    otsune 2008/11/17
  • Mojoを使ってみた - Charsbar::Note

    ちょろっと使ってみたのでレポートしてみる。 MojoというのはCatalystの原作者sriことSebastian Riedelが最近つくっている「ウェブアプリケーションフレームワークの土台をつくる」フレームワークのこと。人いわく「rubyにおけるrack、pythonにおけるwsgiに相当するもの」だそうですが、その評価の是非はさておき、大きな特徴をいくつかあげると、 インストールはきわめて簡単 「やってみたかったから」再発明 RFC大好き コンテキスト持ち歩き系 というところでしょうか。国内では同じような趣旨のHTTP::Engineが開発されていますが、Mooseをバリバリ使っているHTTP::Engineに比べて、Mojoはアクセサからなにから、ほとんどのコードを自分で再実装しているので、インストールに困るような依存モジュールは(ほとんど)なし。ぶっちゃけ「さくらのレンタルサーバ

    Mojoを使ってみた - Charsbar::Note
    otsune
    otsune 2008/11/05
  • Windows上でCPANモジュールを書いていた人は要注意 - Charsbar::Note

    詳細については下記メーリングリストのスレッドを追っていただくとして、問題の概要と、当面の解決策となりそうなことのみ書いておきますと、 http://www.nntp.perl.org/group/perl.qa/2008/09/msg11568.html 1) 通常Windows上でnmake distしてtarballをつくると、EUMM(というか、ExtUtils::Manifest)内部で(Perlの)chmod処理が入っているにもかかわらず、各ファイルのパーミッションは777になります。 2) これをCPAN(正確にはスモーカー)からインストールしようとすると、特定の環境ではworld-writableなファイルがあるということでセキュリティアラートを出す――らしいのですね。 3) それが現実的なセキュリティホールにつながるかどうかはまったくの別問題として、その状況を憂慮したPAU

    Windows上でCPANモジュールを書いていた人は要注意 - Charsbar::Note
    otsune
    otsune 2008/09/30
  • Catalystのstashをグローバル変数的に使うのは - Charsbar::Note

    的に古い時代の名残なんじゃあるまいか。 stash は local なグローバル変数として利用されているとおもうのですが、あれはあんまりよくないんじゃないかなーと感じている。 stash じゃなくて各オブジェクトに明示的に渡した方が幸せだとおもう。 http://d.hatena.ne.jp/tokuhirom/20080608/1212897923 たとえば、Catalystで使いまくっていたら先日「使うな危険」とラベリングされてjrockway涙目のC::C::BindLex。これはstashの中身はすべて(場合によっては複数のものを連続して/切り替えて使う)ビューの出力に使うデータである、という前提があるから成り立っている。 ビューのテンプレート設定とかもそう。古くさいC::V::TTではstash経由でテンプレを渡しているけど、新しいC::V::Templatedベースのもの

    Catalystのstashをグローバル変数的に使うのは - Charsbar::Note
    otsune
    otsune 2008/06/20
  • CPANは幼稚園児の砂場じゃないよね - Charsbar::Note

    またCatalystがでた当初、Plugin::* って簡単に作れるし、使うのも $c->fooでできるしと、それをきっかけに好きになった人もいると思います。 「幼稚園児がやっと足し算を覚えたんだけど、3+3+3 は 3 x 3 だから、3+3+3は馬鹿なやりかただからやるな。」 的にきこえる人もいるのかなぁと思いました。もちろん、3+3+3より3x3の方が良いよ!と教えてあげるのは重要なんですが、3+3+3をその人自身が当に理解して、3x3にたどり着かないと数学の楽しさがわからないのと同じで、perlの楽しさがわからなくなっちゃわないかなぁと思いました。 なので僕は、「Pluginをたくさん書いて、使ったりして、ひどい目にあうか確かめよう!」 でも良い気がします。よくないのは伝えた上で。 http://d.hatena.ne.jp/tomyhero/20080605/121268736

    CPANは幼稚園児の砂場じゃないよね - Charsbar::Note
    otsune
    otsune 2008/06/06
    「(推奨されていないやり方で)ヒドい目に遭うか確かめよう!」はローカルHDDとか自社内でやれ。ということかな。そのやり方を推奨したり注意書き無しでblogに書くのは迷惑だけど
  • CatalystのPluginは使うな、公開するな - Charsbar::Note

    例外的に、ConfigLoaderとStatic::Simple、あとAuthenticationやSession、Cacheあたりは使ってもいいけれど、それ以外は基的に使っちゃいけない。 #や、Authなんかはまだ新しいAPIに追随してないのがあるから、これもやめとけって言った方が無難かな。つくった人使ってないし。 これだけ言ってもプラグインを使うんだったら、どこがどう動かなくなろうと文句は言わないでね。警告を読まなかったとは言わせないよ。 それから、そこで「プラグインを使ったっていいんでないの?」とか言ってる人。そこまで言うんだったら、IRCとかメーリングリストとかで空気を読めなかった初心者が泣き言を言ったときには、あなたたちが対応してちょ。 これからプラグインをつくろうとしている人もそう。みんな過去のくさったプラグインのせいでとても迷惑している。これ以上頭痛の種を増やさんでちょー

    CatalystのPluginは使うな、公開するな - Charsbar::Note
    otsune
    otsune 2008/06/05
  • WWW::Mixi::Scraper 0.14 - Charsbar::Note

    otsune++さんからshow_calendarのHTMLが変わった旨の連絡とパッチをいただいたので、ライブテストが通るように微調整してCPAN&CodeReposにアップしておきました。Plaggerでmixiのカレンダーまわりをウオッチしている方はバージョンアップをお願いします。

    WWW::Mixi::Scraper 0.14 - Charsbar::Note
    otsune
    otsune 2008/06/04