タグ

ブックマーク / blog.64p.org (5)

  • Web アプリケーションのロジックを手続きとして実装する話 - tokuhirom's blog

    yusukebe のObject::Containerを応用したModel呼び出し のあたりをよんでの感想ですが。 一時期 Catalyst の影響もあって、モデルのインスタンスつくったりなんだりもしていたのですが、結局のところウェブアプリケーションにおいては、モデルをがんばってオブジェクトにモデリングしようとか考えるよりも、つまり手続として扱った方がしっくりくるな、ということに自分の中でなりまして、最近は、ごちゃごちゃ考えるのをやめて、手続きとして実装しています。 yusukebe の例をベースにはなしをすすめると、コントローラを以下のようにかきます。 package MyApp::Web::Controller::Root; use Mojo::Base 'Mojolicious::Controller'; use MyApp::M::Entry; sub index { my $se

    termin2
    termin2 2013/07/25
  • 汎用データフォーマットにたいする雑感 - tokuhirom's blog

    フォーマットの変更は、ユーザーに対して基的に不利益をあたえる バージョン情報が含まれているフォーマットならば問題はすくない ユーザーはなにも考えたくないから汎用フォーマットをつかう できるだけなにも考えたくないゆるふわプログラマーがほとんどなのです YAML をみよ バージョンの差異と、プラットフォームごとの実装の非互換によってわけわかめである 初期の時点でまともに実装できている処理系がすくなかった バージョン2を現在まともに処理できているのは libyaml ぐらいではないか? これはフォーマットの複雑さによるところが大きい 1のライブラリと2のライブラリ、ユーザーには見分けがつかない状況 YAML::XS が2 で YAML.pm が 1 とどうしてわかる? 非互換や、ユーザーのプログラムがこわれる変更は、まあなしね。 Data::MessagePack2 とかがでたときに、たとえば

    termin2
    termin2 2013/03/02
  • モダンな Perl の開発環境の構築方法 - tokuhirom's blog

    モダンな Perl の開発環境の構築方法 一般的な OSX 環境および Linux 環境における、モダンな Perl 開発環境の構築方法についてまとめてみたよ。 下準備 コンパイラなどをまずインストール。OSX なら Xcode、debian なら apt-get build-dep perl する。 perlbrew のインストール perlbrew をつかうことにより、簡単に最新版の Perl5 を利用することができるようになる。 perlbrew をいれる。 % curl -L http://xrl.us/perlbrew | perl - install % ~/perl5/perlbrew/bin/perlbrew init ~/.bashrc (または ~/.zshrc)に source ~/perl5/perlbrew/etc/bashrc を追記。 あたらしいシェルをたちあ

    termin2
    termin2 2011/04/06
  • mac ports やめました! ー homebrew で快適 OSX 生活! - tokuhirom's blog

    mac ports やめました! ー homebrew で快適 OSX 生活! http://mxcl.github.com/homebrew/ 昨日 mac mini を購入しまして、「さて、mac ports いれなきゃなあ。でも mac ports での環境構築って時間かかるし、CPU パワーもくうし、電気代かかるしエコじゃないし」とかおもっていたところ、そういえば hsbt さんが homebrew ってのをオススメしてたなーとおもって、いれてみたところ、非常に快適。 mac ports は、システムにもともとはいっている perl とか ruby とかもいちいちコンパイルするので、序盤の環境構築が非常に時間がかかるのが難点です。 しかし homebrew は、system にもともとはいっているものはそのままつかうので、初動がはやい。自分の場合、macbook の調子がわるくって

    termin2
    termin2 2010/11/23
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • 1