タグ

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

  • YappoLogs: YAPC::Asia 2009 発表資料など

    YAPC::Asia 2009 発表資料など まだ終わってないですが発表資料等。 1日目の Data::Model の資料は http://yappo.ficia.com/pl/album/1E8DF4EE-9DB6-11DE-B1EE-7BD1A805B909 2日目の LT nginx に突いての資料は http://yappo.ficia.com/pl/album/9509705E-9EAA-11DE-ADEA-3624873069EA 一応テキスト版を置いてあります。 http://github.com/yappo/talk-yapcasia2009/tree/master なお LT で発表した nginx with memcached は http://github.com/yappo/ngninx-ngx_http_memcachep_module/tree/master に

  • YappoLogs: PSGIの簡易ランチャー作ったよ

    PSGIの簡易ランチャー作ったよ HTTP::Engineは、ちょっとした一枚スクリプトをサーバ化する便利な利用方法がありますが、それをPSGI実装向けにやってくれるアプリを昨日の帰りの電車の中で書きました。 http://github.com/yappo/App-Ksk/tree/master 使い方は簡単で、下記のようなスクリプトを書いて package KskExample::Sample1; use strict; use warnings; sub handler { my($class, $ksk, $req) = @_; my $body = qq{ <h1>Welcome To Ksk World.</h1> you request uri is @{ [ $req->uri ] }.<br /> }; my $res = $ksk->psgi_response_class

  • YappoLogs: HTTP::EngineとPSGI - HTTP::Engine is died?

    HTTP::EngineとPSGI - HTTP::Engine is died? HTTP::Engine は元々 ・各種Webサーバに依存した処理がWAF毎に分散してるのをまとめたい! ・Request/Responseも共通化したい! という所からスタートしたプロジェクトな訳ですが、今回PSGIが始まる事によって前段の部分をPSGIに委譲して、Req/Resの共通化は今まで通りありますよと言う話。 今回のPSGIは「HTTP::EngineのInterfaceのレイヤとReq/Resのレイヤが絡み付いてて良く無いんで、良い感じに分離したいよね」という所から始まった感じ。 結局はPSGIは仕様なので、それを実装するのはHTTP::Engineの内部になるかもしくはRack的な物を外に作ってやるかという事になるけど(後者の方向)、HTTP::Engineの内部でPSGIと既存のReque

  • YappoLogs: Cache::Memcached::Retry - servers の数だけ勝手に retry

    Cache::Memcached::Retry - servers の数だけ勝手に retry Cache::Memcached って servers を複数設定してて、どれか落ちてるサーバに当たった時に最初undef返して、次の接続からrehashされたサーバに接続するんだけど、落ちてるサーバに最初に当たったの時のundef帰ってくるのが嫌なので、undef帰って来たらserversの数だけretryを試みるようなラッパーを作った。 get_multiは、これが欲しい用途では使わないし面倒なので未実装。 package Cache::Memcached::Retry; use strict; use warnings; use base 'Cache::Memcached'; for my $name (qw/ set add replace delete get /) { no str

  • YappoLogs: Imager::ExifOrientation - Exifの情報を元にして画像を回転するよ

    Imager::ExifOrientation - Exifの情報を元にして画像を回転するよ 全国的にみんな真面目だな〜。勉強会の目的なんてないよ。楽しいからやっている。それで何が悪いのかな?の実況中継、その勉強会への 参加そのものについてちょっと考えなおした方がいいかもしれない。 Imager::ExifOrientationをCPANにうpりました。 Exif の Orientation というパラメータを元にして回転済みのImagerオブジェクトを返します。 一緒に Imager::Filter::ExifOrientation もバンドルしてるので、filterとしても利用出来ます。 Orientationは何かと言うと、カメラに縦方向センサーが入ってる機種で、画像に対してカメラの上方向はどちらかというような情報が入っている所です。 わかり易い説明は500で見れないのでgoogle

  • YappoLogs: Data::Model っていう ORM みたいの CPAN にあげたよ

    Data::Model っていう ORM みたいの CPAN にあげたよ あざーす。循環参照しすぎるとバターになる。。なんでそんなに人の目を気にするのだろうと、マジレス。 早速ですが Data::Model っていう O/Rマッパー 的な物を CPAN にあげました。 Data::Model http://github.com/yappo/p5-Data-Model/tree/master 元来は MVC モデルで言う所の Model を一括でまかなえるつもりで実装していますが、ロジック処理は普通の Perl のクラスで書いちゃった方が潰しが聞くため、主にストレージを Perl のオブジェクトにマッピングする ORM 的な使い方が主流となっています。 そして、 Data::Model の多くの実装や設計などは Data::ObjectDriver を参考にして開発しました。 他にも後述して

  • YappoLogs: Hash::Merge 活用術

    Hash::Merge 活用術 「全裸は違法だということを言われた。ええええ、そんな法律があるのか?Debugはできるようになるかもしれない。」と思っておセンチなyappoです。 hashを簡単にmergeするCPAN moduleとしてHash::Mergeがあるのは有名ですが、デフォルトだと色々頑張ってマージしちゃうので、例えばHTTP::Engine::Middlewareの使いたいMiddlewareをARRAY refで書いちゃったりして、base.yamlとproduction.yamlでmergeした時に、以下のような混ざりかたでとんでも無い目にあいます。 use strict; use warnings; use YAML; use Hash::Merge; my $base = { Middlewares => [ { module => 'HTTPSession', c

  • YappoLogs: HTTP::Engine is moved to GitHub

    HTTP::Engine is moved to GitHub こんにちわ!gitがむづかしすぎてgitなんか滅んでしまえば良いのにと思ってる金曜日の天使ことyappoです。 表題の通り HTTP::Engine 関連のプロジェクトgithub に引っ越しました。 http://github.com/http-engine http://twitter.com/httpengine http-engineアカウントを取ってそっちで管理する感じです。 必要な方にはコラボレータ追加したりとか良い感じで運用しようと思います。 なおHTTP::Engine 0.1.8 をshipitしました。 Any::Moose 0.08 での変更の追随や http://example.com/?aco=tie でリクエストたときに $req->uri の中身が http://example.com?aco

  • YappoLogs: Shibuya.pm #11で発表しました

    Shibuya.pm #11で発表しました こんにちは、日のHOTEL担当、素敵なレディーことYappoです。3人の荷物が家族のオモチャにされないか心配だけどもう寝るぞ!話は変わるけど、acotieさんはアクメアクメ言っててどんだけアクメ好きなんだよ!と思ったのは内緒だぞ! という訳でShibuya.pmで発表してきました。二立てです。 一目は、一般的なperl userの作法のBやらDevel::Peekの紹介に加えて、新しく作ったDevel::RunOpsAnalizeを使ってOPCODEの実行単位でPerlの動作を覗き見る方法の紹介をしました。 二目はLTで、dan the eval botの作り方を説明する為のCentOSのインストールをするというのを口実にHatetterのアーキテクチャや、なぜこれらの要素を採用したかを紹介しました。 もちろんCentOSのインストールも

  • YappoLogs: CPUの気持ちは大事だけど、VMの気持ちも考えようよ

    CPUの気持ちは大事だけど、VMの気持ちも考えようよ CPUの気持ちになってプログラムを書くということ Kansai.pm#11 参加記その1 - プログラマになりたい ちなみに、下記のコードはデータハザードを解消する為のコーディング例です。データハザードは、命令が利用するデータ間に依存関係がある場合に発生します。前の命令が終わらないと後ろの命令が実行できないとか。ですので、それを解きほぐしてやれば、並列で処理が出来るようになります。という感じでnaoyaさんもぶこめで loop unrolling は perl でもちゃんと効果があるって書いてるけど、それforブロック(スコープ)が一段増えてる事で差が出てるんじゃないかと思うわけです。はい。 以下検証コード use strict; use warnings; use Benchmark qw(:all); cmpthese(500000

    bayashi_net
    bayashi_net 2009/03/27
    「スコープが変わるという事はレキシカル変数の処理などをやらなきゃいけないわけで、{}があるだけでもPerlは処理をいっぱいするわけです」
  • YappoLogs: TypePad Connect + Yacafi で掲示板作った

    TypePad Connect + Yacafi で掲示板作った TP Connect BBSという掲示板CGIを作りました。 Connectはコメントにリプライとか付けられるので、とりあえず適当なpermalinkさえあれば掲示板になるんじゃないかと思って作ってみました。 ソースコード見れるようになってるので見れば判るのですが、掲示板名だけ若干サーバにファイルを作りますが、uriの中に掲示板名仕込んでいるのでディスクレスな掲示板運用も可能です。 Yacafiのサンプルもかねて見たのでどうぞご利用下さい。 Posted by Yappo at 2008年11月21日 21:20 | TrackBack | 私的サービスめも

  • YappoLogs: Shibuya.PM tech talk #10 の申し込み間に合わなかった人への提案とust時代の勉強会の関わり方

    Shibuya.PM tech talk #10 の申し込み間に合わなかった人への提案とust時代の勉強会の関わり方 昨夜に募集開始されたShibuya.PM tech talk #10ですが、夜に募集開始したのにも関わらず3時間足らずで定員オーバーとなりました。 wassrとか等を見ると行きたいけど間に合わないよーという話もチラホラでてます。 そこで提案なのですが折角ネット中継されるので「Shibuya Perl Mongersテクニカルトーク#10 パブリックビューイング」という催しを同時開催するのはどうでしょうか? ustで見れるから会場に来なくてもいい。という話ではなく、やはり現地にきたら現地に来たなりの何かが得られるので、というか一人で見るよりも同じ目的の人間が集まってワイワイ見た方がたのしいじゃんすか。 定員で参加出来なくて「現地で得られるもの」的な収穫は半減するかもしれないけ

  • YappoLogs: CodeReposのコミッタが500人越えました

    CodeReposのコミッタが500人越えました 509人になりました。kanさんがしゃぶしゃぶ奢ってくれるという噂の栄光の500人目のコミッタはeveresさんに確定しました。 < kan_> 来月あたりにやりますかね -codereposbot:#coderepos- CodeRepos::Share: Committers/aratafuji created (aratafuji) - http://coderepos.org/share/wiki/Committers/aratafuji?version=1 < kan_> coderepos忘年会兼でとの事なので来月になる模様です。 1981忘年会を越える規模になるかどうか要注目ですね! ちなみにしゃぶしゃぶ会場は100人はいらないけど、100人越える貸し切りだと上の店舗使えるらしい。 Posted by Yappo at 200

    bayashi_net
    bayashi_net 2008/11/17
    祝!
  • YappoLogs: Yacafi という軽量CGIフレームワーク書いたよ

    Yacafi という軽量CGIフレームワーク書いたよ MENTA というウェブアプリケーションフレームワークをかいてみた - TokuLog 改めB日記やらNanoA というウェブアプリケーションフレームワークをかいてみた - id:kazuhookuのメモ置き場やらと軽量CGIフレームワーク作りが流行ってるようなので昼飯った後に20分くらいで書いたよ。 Yacafi(Yet another CGI application framework interface)と言います。 http://svn.coderepos.org/share/lang/perl/Yacafi/trunkからsvn coできるけど、Yacafiはモジュール一個だけあれば動くようにしてあるのでhttp://svn.coderepos.org/share/lang/perl/Yacafi/trunk/lib/Yac