タグ

ブックマーク / blog.yappo.jp (10)

  • YappoLogs: Class::Component 0.11 リリースのお知らせ

    Class::Component 0.11 リリースのお知らせ Class::Component使ってるアプリはPluginで使える独自のAttributeを簡単に実装できるわけですが、そのときはattributeへの引数的な物が使えるのですね。 sub migi : Karada ('hikisuu') {}ってやればhikisuuって値が取れます。 しかしこれは、引数が一つのみの場合しか想定していなくてsub migi : Karada ('hikisuu', 'ippai') {}ってやるとhikisuu', 'ippaiになってしまってひじょーに悲しいです。 何でかって言うと、この部分はCatalystから略な感じだったので、もうちょっと使い勝手良くしたいよ!という事で、attributeへの引数の使い勝手が良い事で有名なAttribute::Handlerから盗んできました。 こ

    teahut
    teahut 2008/04/02
    >Proj::Plugin::*の各プラグインはuse base 'Class::Component::Plugin';って感じで直接Class::Component::Pluginを継承せずに、一度MyProj::Pluginを被せてから使ってね!というポリシーに変更しました。see Class::Component::Plugin
  • YappoLogs: 誰でも簡単にOpenID 2.0なOPを作る方法 and CodeReposでOpenID(2.0対応)プロバイダの提供始めましたのお知らせ

    誰でも簡単にOpenID 2.0なOPを作る方法 and CodeReposでOpenID(2.0対応)プロバイダの提供始めましたのお知らせ 先週のbuilder techtalkから俄然としてOpenIDが熱くなって来た今日この頃いかがお過ごしでしょうか。 先日参加して来たOpenID Hackathonの成果として、CodeReposがOpenIDのOpenID 2.0 Providerになりましたことをお知らせします。 CodeReposのアカウントをお持ちの方は、fastladderとかLIMLICとかのOpenIDでサインオンできるサービでOpenID URLをcoderepos.orgとだけ打ち込んでログインしてみて下さい。 2.0に対応していない所だったらhttp://coderepos.org/share/wiki/Committers/usernameとでも入れればいいと

    teahut
    teahut 2008/03/04
    >超簡単なOpenID 2.0対応のOP作り方: 仕様を咀嚼してないのですが、CodeReposではこうやったよ!という例をメモります。
  • YappoLogs: Perlで数有る$selfを取る手法をベンチマーク取った

    Perlで数有る$selfを取る手法をベンチマーク取った PerlでOOなコード書く時のコンテキストを取る方法は色々あります、最近audreyがselfvarsをリリースしたので、gugodのself.pmとingyのSpiffyそして、既存のmy $self = shift;やshift->や$_[0]->で$selfを取る方法それぞれのベンチマークを取ってみました。 テストコードのモジュール名は、それぞれのモジュールの作者名から取り、既存の手法はYAPC::Asiaでプレゼンした事のある日を代表するPerlな企業のCTOからモジュール名を取らせていただきました。 コードは以下の通りです。 package Audrey; use strict; use warnings; use selfvars; sub new { bless { count => 0 }, shift } sub

    teahut
    teahut 2007/12/30
    >audreyがselfvarsをリリースしたので、gugodのself.pmとingyのSpiffyそして、既存のmy $self = shift;やshift->や$_[0]->で$selfを取る方法それぞれのベンチマーク... Spiffyはソースフィルタリングしてるので他と肩を並べる速度になってますね
  • YappoLogs: overloadのreblessとRHLのoverloadが遅いパッチ

    overloadのreblessとRHLのoverloadが遅いパッチ fbis++ overloadと再blessの問題 - Unknown::Programming でも現状の対策としてはどうすればいいのかちょっと思いつかないですね。リファレンスを捜索してoverloadフラグを立てる、なんてことをするモジュールとか作れるのかしら・・・。この段落を見て全てが繋がった! fbisすげーよ!まじすげーよ! 以前騒がせたFedoraCoreやCentOS系の遅いPerlのパッチの件で、overloadすると極端に遅くなるって話題ですが、問題のpatchのコメントに注目すると This is a hack cope with reblessing from class with overloading magic to one without (or the other way). まさしく、

    teahut
    teahut 2007/12/12
    あー,そういうことだったのかぁ.
  • YappoLogs: GunghoっていうWebクロウラーたんの件

    GunghoっていうWebクロウラーたんの件 なんか男前そうなクロウラーたんを発見したお 資料はhttp://www.slideshare.net/lestrrat/gungho-swarmage-pocomdba/を見るべし。 ちなみに、これ書くのに使ったGunghoはVersion 0.09001 のCPANの。 概要 GunghoはPlaggerっぽいwebクロウラーたんです。なのでGunghoの名前空間以下にあるモジュールとかを個別に使おうとしたら大変です。 Gunghoのアーキテクチャにそった一道な動作をさせるのがいいはず。 設定はConfig::Any使ってるので、色んな形式のを使えます。 Providerにより収集URLを取得し、EngineがHTTPでコンテンツを取得し、Handlerで取得したコンテンツを処理します。 Provider,Engine,Handlerは、そ

    teahut
    teahut 2007/11/07
    >GunghoはPlaggerっぽいwebクロウラー... Providerにより収集URLを取得し、EngineがHTTPでコンテンツを取得し、Handlerで取得したコンテンツを処理... EngineにはPOE,brad,IO::Asyncが選べます。どれも非同期なやつ
  • YappoLogs: CodeReposのircチャンネルとOhlohの件

    CodeReposのircチャンネルとOhlohの件 ちゃんと告知してなかったのですが、CodeReposのircチャンネル作りました。 普通に #coderepos@freenode です。 codereposbotが常駐していてtimelineをnoticeしてくれます。 typesterさんの提案でOhlohにも登録しときました。 CodeRepos::Share - Ohloh 最初はPerlだけか?と思われ気味でしたが、現在は7言語のディレクトリがあります。 どしどし参加してくだしあ Posted by Yappo at 2007年09月11日 22:48 | TrackBack | tech

    teahut
    teahut 2007/09/11
    >#coderepos@freenode
  • YappoLogs: Class::Component - プラガブルなモジュールを作る為のベースモジュールの解説

    Class::Component - プラガブルなモジュールを作る為のベースモジュールの解説 pluginやcomponentを取り扱うモジュールを書く時に、plugin/componentを取り扱いを全て引き受けてくれるモジュールを作りました。 だいぶ前からCPANには上げてたんですが、色々あって今日報告と。 既出のアイディアとしてはid:naoyaの Class::Pluggableやid:ya_kenの Class::Pluggable等があります。 これらのモジュールもシンプルでいい感じなのですが、シンプルな分、若干物足りなさがあった(例えばメソッドの生やし方に自由度持たせたいとか)のでこしらえました。 詳しくはCPANのClass::Componentにもありますが日語でも説明文書きたい。 出来る事component追加で基メソッド拡張が出来るplugin追加で、hook p

    teahut
    teahut 2007/06/13
    >pluginやcomponentを取り扱うモジュールを書く時に、plugin/componentを取り扱いを全て引き受けてくれるモジュールを作りました。
  • YappoLogs: FedoraCoreやCentOS系の遅いPerlのパッチの件

    FedoraCoreやCentOS系の遅いPerlのパッチの件 3月くらいにkazeburoさんがメモしてた遅くなる話。 極端に遅くなる処理のベンチ例みたいなのがほしいかな何やったら遅くなるかわかりました。 すごく正確に検証してるわけでも無いのですが、use overloadしたパッケージをblessするとき。 例えばURIやDateTime等のnew時。 この時にかかるCPUコストが激しく高いため、全体的にアプリケーションがもっさりと動く事になってました。 しかもFC4系列のディストリビューション全体で注意した方が良いかもです。 家はCentOS 4.4の perl 5.8.8-4.el4e1 のRPMで該当のパッチが混入していました。 書いたアプリが見込みよりもパフォーマンスが悪くて、最後の最後にまさかと思ってoverloadしてるモジュールを疑っていたらkazeburoさんにナイス指

    teahut
    teahut 2007/06/12
    >use overloadしたパッケージをblessするとき。例えばURIやDateTime等のnew時。この時にかかるCPUコストが激しく高いため、全体的にアプリケーションがもっさりと動く事になってました。
  • YappoLogs: CatalystのAttributesが初期化されるまで

    CatalystのAttributesが初期化されるまで ちょっとSoozyにもChainedっぽい仕組みを取り入れたくてCatalystのAttributesのコードを追いかけてました。 んで、とりあえず名前のエスケープと文字の長さの制限を加えてみたので、軽くメモしてみます。 AttaributeってのはControllerの中の sub default : Private { }やsub root : Chaind('/') ...のような:の右側にある奴の事です。 適当な解説はPerlのAttributesについてのお勉強でまとめてます。 主にattributesまわりの処理に偏って書いているので来の役割とは違う書き方をしてるかもしれません。 どのコードがどこに在る物なのかとかは空気呼んで把握して下さい。 Catalyst->setup Catalystのアプリケーションは、まずC

    teahut
    teahut 2007/03/15
    >sub root: Chained('/') PathPart('') CaptureArgs(0) { ってメソッドの場合だと $action->attributes({ Chained => ['/'], PathPart => [], CaptureArgs => [0] }) と同等の内容が入っています。
  • YappoLogs: Apacheで携帯キャリアのIPアドレス制限をするには

    Apacheで携帯キャリアのIPアドレス制限をするには 塩とDishuberを使えば良い。 用意するもの config.yaml cidr.tt contents.tt frame.tt 以上のファイルと最新のDishuberだけである。 それぞれのファイルの中身はとても単純。 frame.tt [% content %] contents.tt[% FOREACH cidr = meta.cidr %] [% cidr -%] [% END %] cidr.tt# [% meta.source.meta.carrier %] [% FOREACH cidr = source %] Allow from [% cidr -%] [% END %] そして config.yaml plugins: - module: Source::MobileCIDR cid: docomo config

    teahut
    teahut 2007/03/09
    >Dishuberを使えば良い
  • 1