タグ

ブックマーク / perl-users.jp (15)

  • Plack::Middlewareの使い所 - Articles Advent Calendar 2011 Casual

    2011-12-08 00:40追記 @karupaneruraさんに指摘されて、s/Plack::Middleware::Conditionals/Plack::Builder::Conditionals/ しました。ありがとうございます。@kazeburoさんすみませんでした。 こんにちは。Songmuです。鎌倉の面白法人でPerlでソーシャルゲームの開発をおこなっています。 「ぼくらの甲子園熱闘編」や「ぼくらのワールドリーグ」の開発に携わっております。 アプリはArk + DBIx::Class + Text::MicroTemplate::Extendedという構成で作ることが多いのですが、 今回はソーシャルゲーム開発で活用しているPlack関連モジュールを2つ紹介させていただきます。 ちなみにArkのadvent calendarもやっておりますので、併せて読んでもらえると嬉しい

    Plack::Middlewareの使い所 - Articles Advent Calendar 2011 Casual
    mickn
    mickn 2011/12/08
  • DBIx::Handlerで安心DB生活 - Articles Advent Calendar 2011 Dbix

    こんにちは!nekokakです! 今年はボクが作ってるDBIx::Handlerというものを紹介してみる。 DBIx::HandlerはDBIのラッパーでありDBのコネクション周りの管理に重点を置いたモジュールである。 ORMを使わずにDB周りの処理を行いたい場合はこのDBIx::Handlerを使うことをおすすめする。 自分でDBIのインスタンスを生成し利用する場合どこまで正しくコネクション管理をあなたはできますか? そもそも親プロセスで接続したdbのインスタンスを子プロセス側でも利用することの問題を正確に把握していますか? そこまで正しく細かく理解し自分で実装できたとしてもだ、新しいプロジェクトを作るたびにそのコードをコピペするのか? そこでDBIx::Handlerの出番だ。 DBIx::Handlerはそのあたりの処理をすべて面倒みてくれる。 もうあなたは いつDBとの接続が着られ

    DBIx::Handlerで安心DB生活 - Articles Advent Calendar 2011 Dbix
    mickn
    mickn 2011/12/06
  • AnyEvent::RabbitMQ - メッセージキュー…使いこなしてますか? - Articles Advent Calendar 2011 Hacker

    前置き こんにちは。cooldaemon と申します。みなさん、意識は高まっていますか? 私は上々です。今回は拙作の AnyEvent::RabbitMQ というモジュールを紹介いたします。 AnyEvent::RabbitMQ は、AMQP ブローカーと非同期にメッセージを送受信するための AMQP クライアントです。AMQP とは、メッセージを扱うミドルウェアのオープンな標準仕様です。AMQP の正確で詳しい内容は、AMQP の公式サイトや Google をご確認ください。 当の事を言うと、名前は AnyEvent::AMQP::Client でも良かったのですが、私は、AMQP ブローカー実装の一つ RabbitMQ を常用しており、RabbitMQ 以外の AMQP ブローカーを利用する機会も必要もなく、また、接続性を保証する事もしたくなかったので、あえて名前に AMQP を含め

    AnyEvent::RabbitMQ - メッセージキュー…使いこなしてますか? - Articles Advent Calendar 2011 Hacker
    mickn
    mickn 2011/12/04
  • Email::MIME::MobileJPで文字コードまわりに気をつかわないでメールの送受信をおこなう - Articles Advent Calendar 2010 Hacker

    メール関係のモジュールをとりまとめて、カジュアルにつかえるようにするためのモジュールをかいてみました。 メールの受信(Parsing) メールのパーズは、以下のように、メールの文字列をくわせてやればいいです。 use Email::MIME::MobileJP::Parser; my $src_text = do { local $/; <> }; my $mail = Email::MIME::MobileJP::Parser->new($src_text); メールオブジェクトから Subject をえるには以下のようにしましょう。 ここでとれるものは MIME ヘッダにはいっている情報をもとに、UTF-8 に decode された文字列です。 可能ならば絵文字も decode します。これには [Encode::JP::Mobile](http://search.cpan.org/p

    Email::MIME::MobileJPで文字コードまわりに気をつかわないでメールの送受信をおこなう - Articles Advent Calendar 2010 Hacker
    mickn
    mickn 2010/12/24
    Email::MIME::MobileJPで文字コードまわりに気をつかわないでメールの送受信をおこなう - JPerl advent calendar 2010 hacker Track:
  • 記号のみで任意のPowerShellコードを実行 - Articles Advent Calendar 2010 Sym

    こんにちは、牟田口大介と申します。 はせがわさんが記号プログラミングを楽しんでらっしゃるのに触発されて私もやってみたくなり、得意なPowerShellで挑戦してみました。 PowerShellってどんな言語?どんな文法?ということに関しては以前ブログに書きましたのでそちらをどうぞ。 PowerShell基礎文法最速マスター - PowerShell Scripting Weblog もっとも簡単な記号プログラミング PowerShellコードは上から順に一行ずつ実行され、実行した行の出力オブジェクトがクラスごとに定義された書式に基づいて、逐一ホストに表示されます。 文字列(System.String)は文字列そのままの形で出力されます。なので、"Hello, world!"を表示させるには単に "Hello, world!" とするだけです。よって「記号だけで何か文字列を表示せよ」というお

    記号のみで任意のPowerShellコードを実行 - Articles Advent Calendar 2010 Sym
    mickn
    mickn 2010/12/11
    記号のみで任意のPowerShellコードを実行 - JPerl advent calendar 2010 sym Track
  • Devel::Cover - モダンなPerl入門 - モダンなPerl入門

    テストを漫然と書いても、網羅率の高いテストは書けません。「ふう。よく書けた」とおもって も、実はまだ網羅できてないところがあるものです。そんなわけで、網羅率をはかるために Devel::Cover をつかうとよいでしょう。 使い方は簡単です。 perl Makefile.PL make test するかわりに perl Makefile.PL HARNESS_PERL_SWITCHES=-MDevel::Cover=+ignore,inc make test cover または perl Makefile.PL cover -test -ignore_re "^inc/" とするだけ。 これで、モジュールのコードとt/以下のテスト内容を調べてカバレッジ率を出してくれます。 incをよけてるのはModule::Installのカバレッジを取っても仕方ないためです。 HTML が出力されるので

    mickn
    mickn 2010/11/26
  • Data::Model Track - JPerl Advent Calendar 2009

    Data::Model Track - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな?

  • Coroを使って並行処理 - JPerl Advent Calendar 2009

    こんにちわ。『層・圏・トポス』読者の会からの刺客、id:hirataraです。 「並行処理」って言葉はなんだか魅力的ですよね! そこで、今日はCoroを使った並行処理を紹介します。なお、Coroはコアモジュールではありませんので、使ってみたい場合にはCPANからインストールして下さい。 スレッドを作る Coroでは、asyncによって新しいスレッドを作ることができます。ただし、asyncでスレッドを作っても、何もしなければ他のスレッドに勝手に処理が移ることはありません。asyncで作成した別のスレッドに制御を移すには、明示的な操作が必要となります。ここではcedeを使って、asyncブロックへ処理を移しましょう。 use strict; use warnings; use Coro; async { print "Another thread\n"; }; print "main thre

    mickn
    mickn 2009/12/21
  • Qudoで簡単ジョブキュー処理を実施する - JPerl Advent Calendar 2009

    Qudoで簡単ジョブキュー処理を実施する - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? 題 Qudoは既存のジョブキューシステムを使ってみて思ったいくつかの要望を 実現する目的で作成しました。ポイントは拡張性と使いやすさです。 まずは、簡単な例から初めてみましょう。 Advent Calendarということで、クリスマスにプレゼントを願う子供と それを届けるサンタクロースを再現してみたいと思います。 QudoはデータストアにRDBMSを用いています。 そのため、使用する際にはあらかじめDBを作成する必要があります。 現在MySQL,SQLite,PostgreSQL(多分)に対応しています。 各DB用のスキーマファイルは「http://github.com/nekokak/qudo/tree/ma

    mickn
    mickn 2009/12/14
  • Perlではじめるテキストマイニング - JPerl Advent Calendar 2009

    Perlではじめるテキストマイニング - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? ■前置き みなさんこんにちは。ダウンロードたけし(寅年)です。来年は年男なので今からお正月が待ち遠しい35歳2児の父です。 ここ数年、web広告業界ではコンテキスト解析とかユーザの行動分析とか、いわゆるデータマイニング/テキストマイニング系の話題が花盛りです。 自分もそんな業界に属しているんですが、ふと気がつくと日語のテキストマイニング系モジュールを量産してしまっているので、ここらでいくつか紹介してみたいと思います。 今回はインターネットからブログなどのコンテンツを取得して、それを意味解析してクラスタリングする、といったようなことを題材にモジュールの紹介をしてみます。 ■HTML::Featureで文抽出 まずは

    mickn
    mickn 2009/12/13
  • optsでコマンドラインオプション - JPerl Advent Calendar 2009

    optsでコマンドラインオプション - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? はじめに こんにちは、mikihoshiこと ふしはらかんです。去年はadvent calendarが完成したら参加者全員に寿司をおごることにいつの間にかなっていたのに、私自身はcalendarに執筆者として参加できませんでした。今年は参加できて嬉しいです(今年もおごらないといけないようですが)。 perlでコマンドラインオプションを扱う perlは様々な用途に使われていますが、サーバ上でバッチ処理などを行なうスクリプトに使われるのも、良くある利用法の一つですね。 簡単な処理であればそれこそワンライナーで済みますが、何回も利用して、なおかつ毎回微妙に動作条件が違う、となってくるとオプション情報を引数として渡して実行した

    mickn
    mickn 2009/12/03
  • 最速IPアドレスマッチ研修会 - JPerl Advent Calendar 2009

    最速IPアドレスマッチ研修会 - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? もうすぐ2010年になるわけですが、携帯のサイトなどでアクセス元のIPアドレスがキャリアのIPアドレス帯域内にあるかどうかを確認したりすることがあると思います。 例えば、ローカルネットワークのアドレス(192.168.1.0/24)にマッチするかどうか $env->{REMOTE_ADDR} =~ s/^192\.168\.1\.(?:\d+)$/ なんて書くことがあると思います。ここであげたローカルのアドレスのような/24のIPアドレス帯域であれば簡単に正規表現を書くことが可能ですが、/25, /26 /23、/22などのCIDRは正規表現で表すことはなかなか難しいです。 また、携帯キャリアのアドレスであることを確認しよう

    mickn
    mickn 2009/12/01
  • Perl でモバイルウェブ開発 - モダンなPerl入門

    Perl でのモバイルウェブ開発。CPAN モジュールつかいまくって簡単に開発がすすめられます。 端末情報を制する(HTTP::MobileAttribute) HTTP::MobileAttribute をつかうと、HTTP ヘッダから情報をぬきだし、ケータイ端末の情報をあつかいやすくすることができます。 use HTTP::MobileAttribute plugins => [ qw/ IS / ]; my $ma = HTTP::MobileAttribute->new(); $ma->is_docomo(); 絵文字をふくむ文字列をUTF8にまとめつつ相互変換(Encode::JP::Mobile) Encode::JP::Mobile をつかえば、絵文字の相互変換は容易におこなえます。ユーザがポストした発言などにふくまれる絵文字を、各キャリア用に相互変換することができます。 E

    mickn
    mickn 2009/02/06
  • SQLiteを使ったテストのtips

    DB周りのモジュールを開発している場合、テストDBSQLiteを使う事が良くあります。 その際、普通であれば以下のようなテストコードを書くと思います use Test::More tests => 1; use DBI; do { # SQLiteで使うファイルを指定 my $dbh = DBI->connect('dbi:SQLite:./test.db','',''); $dbh->do(q{CREATE TABLE foo (id INT, name TEXT)}); $dbh->do(q{INSERT INTO foo (id, name) VALUES (10,'nekokak')}); my $sth = $dbh->prepare('SELECT * FROM foo'); $sth->execute; my $row = $sth->fetchrow_hashref();

    mickn
    mickn 2008/12/10
  • Perl-users.jp - 日本のPerlユーザのためのハブサイト

    Perl Mongers Perl Mongers とは、日各地に存在する、Perl ユーザーのコミュニティのことです。各種イベントが行われていますので、是非参加してみましょう。 Shibuya.pm Fukuoka.pm Kansai.pm (@kansaipm) Yokohama.pm (@yokohamapm) Hokkaido.pm (@hokkaidopm) Nagoya.pm (@nagoyapm) Kushiro.pm (@kushiropm) Kyoto.pm (@kyotopm) Kamakura.pm Niigata.pm (@niigatapm) Sendai.pm (@sendaipm) Tokyo.pm Hachioji.pm (@hachiojipm) Chiba.pm (@chibapm) Yomitan.pm (@yomitanpm) Machida.pm

    mickn
    mickn 2008/05/20
  • 1