タグ

ブックマーク / mt.endeworks.jp (9)

  • 自分の最近のCatalystのモデル部分の書き方 - D-6 [相変わらず根無し]

    自分の最近のCatalystのモデル部分の書き方 こちらのブログでなんか呼ばれた気がしたのでとりあえず書いてみた。 あくまで自分はどうしてるか、って話ですが、最近はCatalystでなんか書くときはこんな感じで使ってます。 色んな事がこの図に詰まっているので、箇条書きしてみる: Model::APIAPIオブジェクトを作成して、使用時にはModel::APIに対して`find()`というメソッドを使って実際のAPIオブジェクトを持ってくるSchema等はMyApp::Schemaに定義し、Model::APIのアトリビュートとして持っている。cacheも同等。これらの初期化引数は設定ファイルのModel::APIから取れるようにしておくCatalyst::Model::DBIC::Schemaは*使ってない*Model::APIではACCEPT_CONTEXTが呼ばれた時点で、もしまだ初

  • Plack/Starman Daemontools Run File With Complete Deploy Bundle - D-6 [相変わらず根無し]

    Plack/Starman Daemontools Run File With Complete Deploy Bundle 注1:まだ番にはデプロイしてませんが、テストでは使いました。 注2:以下スクリプトは開発者の労力を減らすためのスクリプトで、万全なデプロイ方法だとか言うわけではありません。 注3:正直シェルスクリプトは素人です。 ここ最近のアプリケーションのバンドル・デプロイについてちょっと固まりつつあるので、書いてみる まず アプリケーションと、その依存関係。デプロイ側のサーバーにはlocal::libと必要なModule::Install系のモジュール、それにModule::Install::Bundle::LocalLibがインストールされている前提です。アプリケーションの依存関係は全部Makefile.PLに書きます。 use inc::Module::Install;

  • 納品するextlibに依存関係を全部つっこんじゃうというのはどうか - D-6 [相変わらず根無し]

    納品するextlibに依存関係を全部つっこんじゃうというのはどうか MENTAやNanoAでもextlibにつっこむ云々の話はあったが、とりあえずインストール先のサーバーにアクセス権があるという前提のもと、アプリケーションの依存関係を全部extlibに自動的につっこむスクリプトを書いてみた。 use strict; use CPAN; use Module::CoreList; use Module::ScanDeps; use File::Find::Rule; use File::Spec; use File::Temp qw(tempdir); if (scalar @ARGV != 2) { print <<EOM; Usage: deps2extlib.pl target [extlib] target - the directory or script that you wa

  • MojoMojoを(半分くらい)日本語化した - D-6 [相変わらず根無し]

    MojoMojoを(半分くらい)日語化した JPA用にWikiを設置しようと思って、MojoMojoを試してみた。エディタとかが思っていたよりはるかに高機能でよかったので「えいや」っと目に付くところをだいたい日語化しちゃった。 poファイルの行数で見るとあと半分くらい残ってるんだけど、まぁとりあえず使い始める分にはいいんじゃないだろうか、っていお感じ。 ちなみにこれはレポジトリのHEADから入手可能。今の段階では、初期コンテンツ部分(「MojoMojoへようこそ!」とか)を日語化するには、mojomojo.confに"default_lang ja"っていう行がないと駄目。まぁまだほとんどそっちには手をつけてないんだけど。 相変わらずインストールにかかる手間はちょっぷりつらいんだけど、すでにPerl使いだったら特に問題ない感じかなぁ。 ちなみにこの一連の作業でgithubバージンをロ

    bongkura
    bongkura 2009/01/27
    [wiki
  • 「モダンPerl入門」書きました。 - D-6 [相変わらず根無し]

    「モダンPerl入門」書きました。 モダンPerl入門 今みたらAmazonでも表紙が入稿されたらしいので宣伝させていただきます。えー、モダンPerl入門というを翔泳社さんから出版させていただくことになりました。でも最初に断っておきます。誤字脱字はある気がします。ごめんなさいごめんなさい。日語不得手なんです(こういう時だけ帰国子女カードを使わせていただきます)。 ともあれ、内容的には自分が普段Perlを使っていて、同僚とかに知っておいてほしいな、って思っている実践的な内容ばかり書きました。このはたとえPerlがメインの言語ではなくともPerl仕事で使っていて、なおかつ初級〜中級のあたりでうろうろしてしまっている人たち向けに書いています。初級者向けの構文説明はほとんどありません。上級者向けのわけわかんないところはXS以外ありません(はい、XSの入門あります)。ほとんどは、Perlで業

  • MooseX::Daemonizeがセクシーすぎる件について - D-6 [相変わらず根無し]

    MooseX::Daemonizeがセクシーすぎる件について さて、すっかりMoose厨となりつつある私ですが、この度デーモンスクリプトを書くことになりましたのでMooseでこれをするのは何がいいかなと考えていたわけです。したらなんでもありますな、CPANは。MooseX::Daemonizeですよ、奥さん。 考え方としては、スクリプトの書式をコントロールするオブジェクトをまず作ります。 package MyDaemon; use Moose; with 'MooseX::Daemonize'; コマンドラインから受け取るオプション等はこのオブジェクトの属性として指定します。 has 'option1' => ( is => 'rw', isa => 'Str', required => 1 ); has 'option2' => ( is => 'rw', isa => 'Bool',

    bongkura
    bongkura 2008/06/18
    [daemon
  • バグ見つけた→それってどんなテスト?もしくは、なんでMVCなんて使うの? - D-6 [相変わらず根無し]

    バグ見つけた→それってどんなテスト?もしくは、なんでMVCなんて使うの? 最近ソフトウェアエンジニアリングに置ける開発手法に関して考えている。 ぶっちゃけ言ってしまうと「やっぱりTDDっぽいのがいいな」というところに落ち着きつつあるのだが、厳密にTDDをしたほうがよい、と思ってるわけではない。TDDとかExtremeプログラミング、Agileプログラミングにしても理想はいいんだけど、原理主義っぽい使い方は現実にそぐわないと思ってるからだ。 前置きはこれくらいにしておいて・・・重要だと思うのは以下の点: 開発サイクルに自動テストツールを組み込むエンジニアによるバグ/不具合発見時には「動かない」は許可しない。必ず再現コードを提出してもらうテストを自動テストツールを組み込む(=次回リリース前にはかならずテストを実行できる状態にする)テストが通るまで修正を続けるという開発サイクルを取るべきだ、とい

  • Text::MeCab::Dictでカスタム辞書 - D-6 [相変わらず根無し]

    Text::MeCab::Dictでカスタム辞書 ちょっとリリースそのものでバタバタしてしまいましたが、Text::MeCabを使って、mecabのカスタム辞書に語句を比較的容易に追加できるようにしました。例はText::MeCab 0.20004に同梱されているeg/add_custom.plを参照してください。 自分の場合はちょっと人名をがばっと追加したかったのでAcme::Actor::JA(codereposのみ -- CPANにはアップしてません)とText::MeCab::Dictを使って3000人程の人名を追加してやりました。これをすると何がいいかというと、これまでだとものすごく有名な人の名前で検索する場合とかに「姓」「名」に名前が分けられてしまっていたところがその名前全体をひとつの語句として認識してくれるようになります。 # 追加前 shell > 堂光一 堂 名詞,

  • Cache::Memcached::LibMemcached の非同期モードはありえないくらい速い。 - D-6 [相変わらず根無し]

    Cache::Memcached::LibMemcached の非同期モードはありえないくらい速い。 先輩! 仕事で疲れた脳を休めようと、先ほどlibmemcachedが備えているno_blockをCache::Memcached::LibMemcachedからも設定できるようにしてみたんです。で、ベンチマークを取ってみたところ・・・ daisuke@beefcake Cache-Memcached-LibMemcached$ perl -Mblib tools/benchmark.pl ==== Benchmark "Simple set() (scalar)" ==== (warning: too few iterations for a reliable count) Rate perl_memcahed memcached_fast libmemcached libmemcac

  • 1