タグ

ブックマーク / d.hatena.ne.jp/yappo (5)

  • To Moose Or Not To Moose の邦訳を本人っぽく書き直してみた - Yappo::タワシ

    taro-nishinoさんによるlestrratさんの記事の邦訳Mooseの為か、そうでないのかを元にして人が書いてるっぽい感じに改変してみる。 ちなみに原文見てない。 JPAとしてもMooseに関する話をしてたと思うけど、もうちょっとだけ書かせてください。 「Mooseデベロッパもうちょっとスタートアップのコスト、使用メモリサイズ等に気を使って欲しい」 という事を思ってる。 俺はエンジニアのつもりだし。Moose好きだしMooseの空気感とかわかってるし「メモリもっと足せばいいよ」とか言うのもそりゃわかるよ。 でもさ、Moose使うかHASHにぶっ込めばいいか、他の言語使えばいいやって人の方が多いんだよ。そもそもエンジニアじゃない発注する側の人なんかそんな都合関係無いし。 そういう人達は、ベンチマークとかの数値でしか判断出来ないから、なんでMooseを使いたいのかと言った事情が無くM

    gfx
    gfx 2009/11/05
  • ORMを作るために最低限必要な4+1のコンポーネント - Yappo::タワシ

    短期間でCPANに上がってる名が通ったO/Rマッパ+αを目を通して、ORMマッパの必要最低限なコンポーネントを整理した。ぶっちゃけもっと削っても良いが一般的にするためにもリストアップ。 ORM 基幹的なクラスで使い方はORMによりけりで、特に無くても良い。 ORM::Schema テーブル定義を行う場所。物によってはデータベースの定義だけ行って。テーブルの定義はORM::Table的な物で行う。 どっちにしろテーブルの定義には変わらない。 大ざっぱに言うと、このクラスからselect系のメソッドが生えている。 ORM::Iterator 結果の行を取り扱うイテレータ。 DBICならDBIx::Class::CursorになりMoCoならDBIx::MoCo::Listが担当。 ORM::Row 結果の行ごとのオブジェクト。だいたいはORM::Schema or Table で定義してるco

  • RubyのFiberをPerlでも

    package Fiber; use strict; use warnings; use Carp (); sub new (&@) { my $code = shift; bless { code => $code, block => 0, now => 0, }, __PACKAGE__; } sub run (&@) { Carp::croak q!Can't call Fiber::run {} outside Fiber::new {} block!; } sub yield (&@) { Carp::croak q!Can't call Fiber::yeild {} outside Fiber::new {} block!; } sub resume { my $self = shift; return if $self->{block} < 0; unless ($self

    gfx
    gfx 2009/02/01
  • branches を trunk に merge する前には必ず trunk の内容を branches へ merge する - Yappo::タワシ

    想定外な事になるよ!っていう例をやってみた。 $ ls trunk/ foo.txt hoge.txt branches/a を作る $ svn copy trunk branches/a A branches/a $ svn ci Adding branches/a ファイルを色々変更する $ vim branches/a/foo.txt $ svn diff Index: branches/a/foo.txt =================================================================== --- branches/a/foo.txt (revision 2) +++ branches/a/foo.txt (working copy) @@ -1 +1,2 @@ fue +nikoniko $ svn ci Sending bran

  • Perl Quizむづかしすぎんぞ! - Yappo::タワシ

    Perl Quiz - package名について - Islands in the byte stream Q.以下のテストケースが失敗するようなf()を書いてください。ただし,ライブラリを使用してはいけません。回答は一週間後くらいに。 #!perl -w use strict; use Test::More 'no_plan'; sub f{ # 何かする { package Foo::Encoding; sub cat_decode { my $self = shift; my(undef, undef, $idx, $quot) = @_; my ( $rdst, $rsrc, $rpos ) = \@_[ 0, 1, 2 ]; my $pos = $idx; while ((my $tmp = index $$rsrc, $quot, $pos) > 0) { $pos = $tm

  • 1