タグ

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

  • 国際化 - Locale::Maketext::Simpleの場合 - D-6 [相変わらず根無し]

    国際化 - Locale::Maketext::Simpleの場合 この前の国際化話の続き。まずLocale::Maketext::Simpleの場合。 Locale::Maketext::SimpleはI18N用のクラス定義とかを全部裏でやってしまうモジュール。あとLocale::MaketextのPODに載ってる get_handle()とかでオブジェクトを持ってくる必要はなく、maketextかlocのようなメソッドが現在の名前空間内にエクスポートされる。以下一番簡単なセットアップ方法: package MyApp; use strict; use Locale::Maketext::Simple Decode => 1, Path => do { # これは、auto/MyApp/I18N以下にファイルを入れれば、設定する必要はない my $path = $INC{'MyApp.p

  • White Camel Awards 2011 - D-6 [相変わらず根無し]

    White Camel Awards 2011 2011年8月18日 10:51 D | ブログ記事のURL | コメント(0) | トラックバック(0) 昨日の夜、ビールの缶のプルトップをぷしゅっ!とあけてぐびぐびと一番うまい最初の一口を飲んで、ベッドの上からツイッターに発泡酒よかビールのほうがうまい、とか書いてたらtwitterで今年のWhite Camel Awardをもらったということを聞いた。ちなみに以前の受賞者には@miyagawaさんとかがいます。 人いないところでやるのはどうなのよ、とは思いつつも(まぁしょうがないっすよね!)、大変ありがたい話です。White Camel Awardが何か知らない人に説明すると、要はPerl技術とかそういうところでの貢献ではなくて、コミュニティであったりイベントであったりマーケティングとかそういうところでPerlに貢献した人を表彰してく

    sfujiwara
    sfujiwara 2011/08/18
    おめでとうございます!
  • YAPC::Asia 2010 - Thank You! - D-6 [相変わらず根無し]

    YAPC::Asia 2010 - Thank You! 気づいたら 9/26からブログかいてねぇよ。忙しかったのだな・・・ というわけでYAPC::Asia Tokyo 2010もようやく終わりました。今さっきスピーカーの皆様にメールを書いたので、あとはいくつか支払いをすればだいたい終わりかなぁ、っていう感じです。 まずは来場していただいた皆様ありがとうございました。今回は「初心者の俺でもいいんだ」「Perl使いじゃないけど、いいんだ」と言ってくれる人が結構いたようで、大変嬉しい限りです。そうです、YAPCPerl好きのほうが楽しめますが、Perlが好きじゃなくても全然問題ありません。 前回2009ではブレーンが俺一人で、しかも開催二日前に39度の熱を出すというへたれっぷりを発揮して方々に迷惑をかけまくりましたが、今回は @941さんと業務を分けられたので大変助かった。今年は少なくとも

  • 近況 - D-6 [相変わらず根無し]

    近況 もうちょっと黙ってようと思ったんだけど、少しずつ色んな所から漏れちゃったのでばらすと・・・私が代表を務める 株式会社 endeworksは4月末を持って営業を事実上停止しました。 1月の日記では割と余裕な内容を書いてたんだけど、蓋を開けてみれば2010年度にアテにしていた仕事が諸々全部合わせて4000万円弱、全てキャンセルないしそもそも始まらなかったりして、万策尽きてしまった・・・という次第。 たいした負債もないし、社員を全部切るとか会社を続けるっていうだけだったら正直なんとかなったんだけど、まぁさすがにこれだけの額のキャンセルや、それに伴うドタバタで僕の心が折れてしまった、ということで被害がないうちに・・・と今回の運びになりました。 まぁ厳密にはまだもう少し銀行と話したりとか、オフィス機材の処理とかをしないといけないのだけど、とりあえず誰にも(不必要な)迷惑は掛けず負債も完済して全

    sfujiwara
    sfujiwara 2010/05/07
  • 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;

  • Perl App EngineをMac OS Xで動かすまで。 - D-6 [相変わらず根無し]

    Perl App EngineをMac OS Xで動かすまで。 先週末、僕が相方とのんびりとしているとメールが入ってきた。「アイデアがあるんだけど」とメール始まるが、僕はピンと来た。これは「やってくれ」という催促だ。僕は身を固くして続きを読み始めた。 JPAのターゲットのひとつにクラウドコンピューティング サポートってのが入っていて,ec2とかで使うことを考えて ました.が,よく考えるとperl-appengineってのがありますね. ああ、ありますね。そうですね。 誰かYAPCでしゃべってくれるといいんですが〜 うは!くっ。僕は肩書きこそ「長」がつくけど、そんなに偉くないので年上&目上のこの人に「君がやりたまえよぉ」とは言えないので「隙を見つけてやってみよう」と思った。 月曜、きっとやらないとなんか言われるだろうなぁ、と思いつつも忙しくてなにもできなかった。そして今日。メールを山のように

  • Moosification: Catalyst 5.8に移行した際にちょっと気づいた事。 - D-6 [相変わらず根無し]

    Moosification: Catalyst 5.8に移行した際にちょっと気づいた事。 最初からMooseベースでアプリケーションを作るというのは、実務ではなかなか難しいのはわかります。一般論は JPA #02で話すのでおいておきますが(参加申し込みは今日5/12までですよ!)、5.8 からMoose化したCatalystであった問題・注意点をちょっと書き出してみます。 1. use Catalyst Catalyst::Upgradingを読んでいると package MyApp; use Moose; extends 'Catalyst'; __PACKAGE__->setup(qw/ ConfigLoader /); という表記が見られるが、これは気をつけないと駄目。 自分が直面した問題は、path_to()等を使った時に起こった。path_to() は現アプリのルートディレクトリ

  • JPAの活動内容 - D-6 [相変わらず根無し]

    JPAの活動内容 コメントリストを見ていたら未承認のコメントがあったので先ほど承認しておいた。 地方在住の方に関してはJapan Perl Associationは最初から地方での活動を視野に入れて団体を作った、というのは断言しておきます。ちゃんとこれから東京以外の地域でも活動はしていく予定です。 ちなみにまだ未確定ですが第一回セミナーと同時期に関西地区でのセミナーも視野に入れて調整中です。その後も、ニーズに合わせて少しずつ活動を広げていくつもりです。とりあえず考えているのは広島、仙台、北海道あたり。それ以外は行かない、というより、個人的になんの予備知識もないため、これから調査をする必要があります。情報及びヘルプは随時募集いたしますので是非ご連絡ください。ただ、もうしばらくは地盤固めのほうが先に来てしまいがちになるのはどうか理解いただきたい。 なお録画に関しては正直他のことにかまけていて忘

  • JPA Semniar #1 (第一回旗揚げセミナー!) - D-6 [相変わらず根無し]

    JPA Semniar #1 (第一回旗揚げセミナー!) Japan Perl Associationセミナー#1 を開催します。 記念すべき第一回旗揚げセミナーです! 秋葉原UDXでCatalystを使い倒す話とMoose等の最新ベストプラクティスに関しての話になる予定で、講師はJay Shirley氏です。日ではまだあまり名前が売れてないかもしれないですが、トップレベルの技術者で、CatalystやDBIx::Classなどを現場でどう生かすのかというノウハウについては絶大なるものを持っています。また、最近ではMatt Trout氏らとEnlightened Perl Origanisation (EPO)という、エンタープライズ分野でPerlを使うためのノウハウやサポートの提供を行う団体を立ち上げています(EPOはThe Perl FoundationなどよりもJPAにかぶるかもし

  • DateTimeX::Lite - D-6 [相変わらず根無し]

    DateTimeX::Lite わすれてた。昨日DateTimeX::Liteをアップしてた。 use DateTimeX::Lite; my $dt = DateTimeX::Lite->new(year => 2008, month => 12, day => 1); $dt->year; $dt->month; $dt->day; $dt->hour; $dt->minuute; $dt->second; # Arithmetic doesn't come with DateTimeX::Lite by default use DateTimeX::Lite qw(Arithmetic); $dt->add( DateTime::Liate::Duration->new(days => 5) ); # Strftime doesn't come with DateTimeX::Lit

  • 納品する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

  • 国際化はすげぇつらかった - D-6 [相変わらず根無し]

    国際化はすげぇつらかった MojoMojoを使ってみて国際化についてちょっと研究してみた。CPANにはLocale::Maketext, Locale::Maketext::Lexicon, Locale::Maketext::Simple等々色々あって正直よくわからんかったのだが、今回調べてみてようやく把握した。 まず先に行っておくけど、Locale::Maketext::* 系のモジュールのコードは正直クレイジーなので、暇じゃなきゃあんまりソースコードを漁るのはお勧めしない。 国際化の大まかな流れは、文字列IDがあって、それに対応する言語の「翻訳」が存在する、という感じ。Catalystを使っているなら、Catalyst::Plugin::I18Nを使用して、MyApp::I18N名前空間以下に.poや.moファイルなどをおくのが主流。 問題はHTML::FormFuなど、他の国際化さ

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

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

  • App::Benchmark::WAF - D-6 [相変わらず根無し]

    App::Benchmark::WAF tokuhirom/yappo/kazuho/hidekさんあたりが軽量なWAFの開発をなんか熱病に浮かされたかのようにしはじめたので、こりゃ負けてられないとApp::Benchmark::WAFを書きましたよ。 Apache::Testを使って、apacheから実際にHTTPリクエストサイクルを通って、CGIモードとmodperl(メモリに一度載せたらそれを再利用)する状態でベンチを取れるようにした。"make test"とすれば全てのフレームワークに対してab -c 100 -n 1000して計測する。 現在実装している中で、俺のMacBook上での計測値は以下の通り: # [cgi-app (cgi)]: 28.01 [#/sec] (mean) # [cgi-object (cgi)]: 34.92 [#/sec] (mean) # [cgi

  • MooseX::WithCacheを書いた - D-6 [相変わらず根無し]

    MooseX::WithCacheを書いた オブジェクト、特にビジネスロジックを書くときに、その結果をキャッシュに突っ込んでおくことがとにかく多い。 で、まぁそういう共通コードはベースクラスに入れておけばいいやって感じで書いてたんだけど、それももう5回目くらいになって最近もう当にそれが面倒くさくなってきたので、丸ごとパッケージングした。それがMooseX::WithCache 話は単純で、要はcacheオブジェクトへのリファレンスをそれぞれのオブジェクトが持っていて、それに対するアクセスを簡単にするメソッドを生やしてやっているだけ。 package My::Thing; use Moose; use MooseX::WithCache; with_cache 'cache'; # デフォルトはCache::Memcached no Moose; no MooseX::WithCache;

  • TPF-J 準備 - 飲み会しませんか - D-6 [相変わらず根無し]

    TPF-J 準備 - 飲み会しませんか 前々から言っていた通り、やはりTPF-Jはやりたいのです。なんかまだどれだけの規模になりえるか、とかよくわかってなくて夢物語が多いのだけど・・・。 まぁともあれ、ちょっと仕事とか引っ越しとかが終わって落ち着いてきたので、今月からちょっと裏でぼちぼちやってるわけです。 とりあえずTPF-Jについてのおさらい。まず目標: Perl業界を活性化させたいPerlという言語の認識を企業等にもっと正しく持ってもらいたいこの二つが大目標。活動内容は基的に非営利方向なのでゆくゆくはNPOとして発足できれば、幸い。とりあえずは多分諸処の事務的な問題からendeworksが肩代わりする感じをイメージしている。 で、当座TPF-Jとして行えそうな活動は以下の数点かと思う: Perl技術認定試験の実施企業とPerl技術者のハブ(jobs.perl.orgみたいなん?)Pe

  • memcachedになにをキャッシュするのか - D-6 [相変わらず根無し]

    memcachedになにをキャッシュするのか 激遅なレスポンスなんだけど、dormandのmemcached記事。 dormando - Should you cache? この中でキャッシュの使い方でよく見る間違った使い方を指摘している部分があって、ここがとても重要だと思うので書いておく Where would you think to add caching to this system? I hope I've made it too obvious.(システムのどこにキャッシュ機能を追加するべきだろう?) At the query layer!Use a database abstraction class and have it memcache resultset objects and...No no no, that's a lie. I'm lying. Don't do

  • Mooseは「使いやすいオブジェクト定義ツール」じゃないよ - D-6 [相変わらず根無し]

    Mooseは「使いやすいオブジェクト定義ツール」じゃないよ Mooseは「使いやすいオブジェクト定義ツール」じゃないよ。MooseはPerlにおける「オブジェクト指向の革命」ですよ。 http://dann.g.hatena.ne.jp/dann/20080814/p2http://d.hatena.ne.jp/fbis/20080814/1218689670http://d.hatena.ne.jp/a666666/20080813/1218628821http://anond.hatelabo.jp/20080621124021 ぶっちゃけ"has"が使えるとか、勝手にnew()を作ってくれるとか、そういうことはどうでもいいのです。Mooseが革命児たる所以はオブジェクトの初期化・クリーンアップ・メソッドのコールチェインをPerlという言語において初めて(呼び出される順番とか、そういう

  • Data::Decode - D-6 [相変わらず根無し]

    Data::Decode もうアホか、っていうくらいウェブから持ってきたデータを文字コードを解析してutf-8に正規化するみたいなコードを書いてきたので、いい加減飽きてきた。今使ってるモジュールでもそう言う事してくれるのでいいのだけど、なんかそれぞれのモジュールでそれぞれ別の書き方するのもなんだかなぁ・・・と思って、Data::Decode書いたですよ。 Data::Decodeは中身が完全にプラッガブルなので基はインターフェースを提供するだけなのです。残りは中に指定するオブジェクトをつなげて行く感じ。 use Data::Decode; use Data::Decode::Chain; use Data::Decode::Encode::Guess; use Data::Decode::Encode::HTTP::Response; my $response = $ua->get($

  • Introducing Data::Valve - D-6 [相変わらず根無し]

    Introducing Data::Valve 昨日から思い立ってData::Valveというものを書いてみました。XS混じりのスロットリング用モジュールです。 Data::Throttlerでも同じような事ができるわけですが、こっちは内部が非常にごつい。しかも拡張しにくい事この上ない。アクセッサーとか全くないんだぜ? ってことでData::Throttlerとほぼ同等のAPIを持って、内部構成を完全に書き直しました。 Data::Valveは内部の基スロットリングロジックはものすごく簡単なCで書いてます。単純にスロットリング判定が行われた時間を保存したリンクドリストを格納しておいて、その数と現在時刻からのインターバルを持って計算するだけです。 ただ、キモはこの計算を行うデータ構造体をシリアライズ・デシリアライズすることによって、外部媒体にこのデータを保存して、複数プロセスどころか複数ホ