タグ

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

  • Scope::Container でリソース管理を行う - Articles Advent Calendar 2010 Hacker

    メリクリ!ライヨロ!YAPC::Asia 2010でベストスピーカー賞の nekokak さんの次に書かせて頂きます。kazeburo です。 先月 Scope::Contaier というモジュールをリリースしましたが、CPAN、紹介したblogはこちら。もともとこのモジュールを書いたのはMySQLに対する接続を制御するためでした。 某日、某サービスのMySQLのPROCESSLISTを見た時に mysql> show processlist; +-------------+-------------+-------------------+------+---------+----------+---------------------------------+------+ | Id | User | Host | db | Command | Time | State | Info

    Scope::Container でリソース管理を行う - Articles Advent Calendar 2010 Hacker
  • AnyEvent::APNSでiPhoneのプッシュ通知を実装しよう - Articles Advent Calendar 2010 Hacker

    perlハッカー1のドラゴンズファンと自負しております、typesterです。 今回はあんまりちゃんとした記事がないiPhoneプッシュ通知の仕組みと、それをperlから実装するにはどうしたらええんじゃ、という話をします。 iPhoneプッシュ通知の概要 iPhoneプッシュ通知とはサーバーアプリケーションからリアルタイムにiPhoneに通知を送ることができる仕組みのことで、 通知対象のiPhoneアプリケーションが起動していなくても、またiPhoneがロック状態であってもいつでも通知を送ることができます。 通知が送られるとiPhoneでは以下のような画面が表示され、その通知からアプリケーションを起動することができます。 iPhoneプッシュ通知の仕組み サーバーアプリケーション(通知プロバイダーと言います)はiPhoneに直接通知パケットを送るわけではなく、代わりにアップルが用意して

    AnyEvent::APNSでiPhoneのプッシュ通知を実装しよう - Articles Advent Calendar 2010 Hacker
  • かゆいところに手が届くマイナーCPANモジュールランキング - Articles Advent Calendar 2011 Casual

    use strict; use warnings; print << 'PERL_ADVENT_CALENDAR_JAPAN_2011_DAY_7'; こんばんわ!こんばんわ!id:karupaneruraです! Perl Advent Calendar Japan 2011の7日目を書かせて頂きます!お手柔らかに! さてさて、みなさんCPANモジュール使ってますか?使ってますよね?僕は大好きです! そんな、みんな大好きCPANモジュールの中から僕が独断と偏見で選ぶ、 『かゆいところに手が届くマイナーCPANモジュールランキング』を作ってみました! 5位. Perl::MinimumVersion マイナー度 *** 使える度 **** 面白い度 **** 何番煎じ度 *** かっこいい度 **** これはPerlスクリプト、あるいはモジュールがどのバージョン以上で動作するかなどを調べるた

    かゆいところに手が届くマイナーCPANモジュールランキング - Articles Advent Calendar 2011 Casual
  • SQL::Interpで生がお好きなあなたも満足 - Articles Advent Calendar 2011 Dbix

    Perl AdventCalendar初投稿でドキドキしているriywoです。目指せhirose31ということで「コードも書けるインフラエンジニア」を所望していますが、正直、DBI使ってゴリゴリアプリとか作ってない。。。限りなくひとりDBIx::Casual Trackではありますが、そんな僕だからこそ書けるゆるふわなエントリをどうぞ! 情弱なんで生SQLがいいんです。。。 Tengとかすごい魅力的なんですが、ゆるふわ過ぎてついつい生でSQLを書きたくなります。ORMのメソッド覚える努力をしないだけ情弱なんですが、特にインフラはいつも慣れ親しんでいるSQLをそのままアプリでも使いたくなっちゃいます。 とは言え、こんなコードを書いてしまうと色々と残念な感じです(注:2年前くらいの僕)。 my @line = `mysql -N -uuser -ppass hoge -e "select *

    SQL::Interpで生がお好きなあなたも満足 - Articles Advent Calendar 2011 Dbix
  • Calendar::Japanese::Holiday - 日本の祝日を求める - Articles Advent Calendar 2011 Casual

    こんにちはこんにちは、sakurako_sです。 日の祝日を求めるのに便利なCalendar::Japanese::Holidayをゆるふわっと紹介します。 このモジュールには2つの関数があります。 isHoliday() - 指定日が祝日なら祝日名を返す getHolidays() - 指定月の祝日とその名前のハッシュリファレンスを返す コードを見てみましょう。 use strict; use Calendar::Japanese::Holiday; use YAML qw/Dump/; use Perl6::Say; binmode STDOUT, ':utf8'; # 祝日の名前 say isHoliday(2012, 1, 9); # 指定月の祝日 say Dump getHolidays(2012, 1); 実行結果は次の通り。 成人の日 --- 1: 元日 9: 成人の日 振

    Calendar::Japanese::Holiday - 日本の祝日を求める - Articles Advent Calendar 2011 Casual
  • Smart::Matchで快適スマートマッチ - Articles Advent Calendar 2011 Casual

    こんにちは。Perlで遊ぶと言うより、 未だ、Perlに遊ばれているtaiju (id:jdg) です。 YAPC::Asia TOKYO2011に参加したので、爪あとを残すべく、Perl Advent Calendar 2011に参加することにしました。 さて、Perl5.10から導入されたスマートマッチですが、これをより快適に使えるモジュールがないか、CPANで探してみたところ、Smart::Matchというモジュールが見つかりましたので、ご紹介したいと思います。 Smart::Matchはスマートマッチを快適に使うためのユーティリティをたくさん提供しているモジュールのようで、デフォルトで比較演算子でスマートマッチが採用される、switch文などで便利に使えそうなユーティリティがたくさん導入されています。 junctive Perl6のJunctionのような動作をするユーティリティ群

    Smart::Matchで快適スマートマッチ - Articles Advent Calendar 2011 Casual
  • DBIx::Class で FORCE INDEX する方法 - Articles Advent Calendar 2011 Dbix

    DBIC って… 最近なにかと dis られることの多い DBIx::Class (DBIC) ですね。 曰く「重い」「複雑すぎる」「コードが読めない」……まあそれはそうかもしれませんが、数年前の DBIC 全盛期に作られて今まで生き残っているシステムを、そう簡単に他の ORM や生 DBI に置き換えられるものでもありません。 自分の管理しているとあるシステムは DBIC + MySQL で動いていますが、最初はデータも多くなく、DBIC が生成する SQL で何ら問題はなかったのです。 が、データが増えて行くにつれて、 MySQL が適切な index を使用してくれないとパフォーマンス的に厳しい、FORCE INDEX 句を付けたい!という状況に出くわしました。そこで試行錯誤して見つけた、FORCE INDEX を指定する方法をご紹介します。 どうやって? たとえば以下のように、fo

    DBIx::Class で FORCE INDEX する方法 - Articles Advent Calendar 2011 Dbix
  • Term::UI - サクッと対話的に入力を求める - Articles Advent Calendar 2011 Casual

    こんにちは、コンビニに行くたびに店員さんから舌打ちされるdameninngennです。サックリと書きます! 対話的に処理を進めるスクリプト書いたりしますよね!あの[yes/no]とか聞かれて入力するやつです!! 例えばrsyncで--dry-runオプション付きで一旦実行して、そこから[yes/no]を聞いて当にsyncするかどうかみたいな感じのやつです!!! まず、標準入力から受け取るだけであれば、 my $str = <STDIN>; chomp $str; # do something # ... こんな感じに受け取ったりするかと思いますが、当に[yes/no]が入力されたのか判定したりそうじゃなかったらもう一回入力求めたりとか書くのめんどくさいですよね。 そこらへんのめんどくささとかを解消してくれるTerm::UIというモジュールがあります。 誤解を招くかもしれませんがTerm

    Term::UI - サクッと対話的に入力を求める - Articles Advent Calendar 2011 Casual
  • Geo::Coordinates::Converter - 位置座標の測地系やフォーマットを変換する - Articles Advent Calendar 2011 Casual

    こんにちは。hatak (@hisashi) と申します。 モバイルデバイスでは GPS やネットワーク測位などで位置座標を簡単に取得できます。しかし、緯度や経度の計算は意外と面倒なものです。 14 日目は、このような位置座標を扱うときに便利なモジュール Geo::Coordinates::Converter をご紹介します。 測地系の違い 緯度経度で表された座標を扱う場合、「測地系」という基準を考える必要があります。 測地系には様々な種類があります。日国内で利用されることの多い測地系は次の 3 種類です。 世界測地系 1984 (WGS84) アメリカで策定された測地系 GPSGoogle Map などで採用されている 日測地系 2000 (JGD2000) 日で策定された測地系 2002 年以降の国内の基盤地図などで採用されている 旧日測地系 (Tokyo) 2002 年

    Geo::Coordinates::Converter - 位置座標の測地系やフォーマットを変換する - Articles Advent Calendar 2011 Casual
  • Time::Piece::Plus - Time::Pieceに便利メソッドを - Articles Advent Calendar 2011 Hacker

    はじめに こんばんは、takuji31と申します。 今回はPerl歴2年弱の初心者である私が作ったTime::Piece::Plusというモジュールを紹介します。Hacker(笑)となってしまった方はすみません。 さて皆さん、Time::Pieceというモジュールはご存知でしょうか? 既に[/articles/advent-calendar/2011/hacker/7:title=7日目のトラック]にて紹介されているのでご存知でない方はそちらを見ていただければと思います。 このTime::Piece、非常に軽快でシンプルが故に意外とかゆいところに手が届かないことがあるのではないでしょうか? 例えばDateTimeにあるtruncateメソッドはTime::Pieceにはありません。 例えば今日の0時を取得したい時は use strict; use warnings; use utf8; u

    Time::Piece::Plus - Time::Pieceに便利メソッドを - Articles Advent Calendar 2011 Hacker
  • App::pfswatch - ファイルの変更を検知して、指定したコマンドを実行する - Articles Advent Calendar 2011 Hacker

    前置き こんにちは、aloelightと申します。みなさん、意識は高まっていますか? 私は上々です。 今日は、拙作のpfswatchを紹介します。 ファイルが変更されたら特定のコマンドを叩きたいなーと思ったことはありませんか?pfswatchを使うと簡単に実現できます。 使い方 インストール方法は cpanm App::pfswatch を叩くだけです。適当なbin/に pfswatchコマンド がインストールされます。インストール後は、pfswatchコマンドに監視したいディレクトリやファイルと実行したいコマンドを-eオプションのに続けて渡してあげます。 $ pfswatch /path/to/watch -e perl -E 'say "wassyoi"' 私は以下のようなコマンドで、モジュールを更新したらテストを自動で実行するために使っています。別窓で立ち上げておくと、横目で互換性が

    App::pfswatch - ファイルの変更を検知して、指定したコマンドを実行する - Articles Advent Calendar 2011 Hacker
  • 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
  • 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
  • Encodeでラクラク日本語処理 - JPerl Advent Calendar 2009

    こんにちは!ラブプラスとときメモ4の狭間で揺れ動いているxaicronです!! 今日は日でプログラムを書いていたら避けては通れない気がする、Encodeの話をしようと思います! はじめに まず、この記事を読む前に、Perlのバージョンの確認をしてください。以下のようにやればバージョンが表示されます。 % perl -v ここで、5.8.1より下の数字ができてきた方は、Perlのバージョンアップをしてください。5.8.1より下のバージョンでは、Perlの内部文字コードが安定していないので、いい感じになりません。できれば5.8.8以上のバージョンを使いましょう。 それから、文字コードってなによって人も適当にWikiとかで調べてから読んだ方がいいと思います!! Encode.pm Encodeは昔のjcode.plやJcode.pmに代わる、現在の文字コード処理のスタンダードModuleです。

  • Perl のローレベルエラー処理 (もしくは Errno.pm のススメ) - JPerl Advent Calendar 2009

    Perl のローレベルエラー処理 (もしくは Errno.pm のススメ) - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? 例えば、「ディレクトリが存在しなければ作成」という処理を書くことを考えてみます。 if (! -d $dir) { mkdir $dir or die "failed to create dir:$dir:$!"; } でいいしょうか? いえ、違います。これだと、-d 演算子でディレクトリの不存在を確認した後、mkdir を呼ぶまでの間に他のプロセスがディレクトリを作成してしまう可能性があります。なので、たとえば C ならば、 if (mkdir(dir) != 0 && errno != EEXIST) { fprintf(stderr, "failed to create d

  • Don't use DBIx::Class::UTF8Columns - JPerl Advent Calendar 2009

    Don't use DBIx::Class::UTF8Columns - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? 自分のつくったもジュールを紹介するハッカートラックということで、僕は DBIx::Class に同封されている DBIx::Class::UTF8Columns について書きます。 まず最初に、このモジュールをつかわないでください。 DBIx::Class::UTF8Columns は DBIx::Class のコアモジュールになってから、utf8 を扱う場合はこのモジュールを使うといいよという記述をいろいろなところで目にします。しかしこのモジュールがしていることを理解せずに使用すると予期せぬ不具合に悩まされるかもしれません。今日はこのモジュールを使わない方が良い理由と、その代替案を示

  • JPerl Advent Calendar 2009

    JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? 今年もやってきました、JPerl Advent Calendar。12月1日から25日まで、1日1個ずつ tips を紹介していきます。 今年は三だてです。はたして最後まで無事につづくのでしょうか。今年も無計画な上に面子がそろってないので、はらはらどきどきです >< Main Tracks Hacker Track

  • Cache::Memcached::Fast - モダンなPerl入門 - モダンなPerl入門

    memcached へのアクセスは Cache::Memcached::Fast がオススメです。高速かつ安定して動作します。 つかいかた use Cache::Memcached::Fast; my $memd = new Cache::Memcached::Fast({ servers => [ { address => 'localhost:11211', weight => 2.5 }, '192.168.254.2:11211', { address => '/path/to/unix.sock', noreply => 1 } ], namespace => 'my:', connect_timeout => 0.2, io_timeout => 0.5, close_on_error => 1, compress_threshold => 100_000, compress_

  • Config::PitとWeb::ScraperとPlaggerで24時間365日のゲーム監視体制

    序文 趣味のネットウォッチのために仕方が無く超便利なPerlを覚えようという感じの otsune です。そんなわけでコーディングの深い話はよくわからんので、今回はPerlとCPANを使ってネットウォッチを支援する手法について書きます。 ウォッチしたいWebページを機械的に監視できれば、あとはPlaggerなどの便利ツールを使って「メールを出す」「im.kayac.comでメッセンジャーにアラートを出す」「ピザを注文する」など好きな処理をすることが出来ます。 RSSフィードやAPIなどがあるWebサイトであれば特に苦労はしないのですが、今回取り上げるOgame.jpはウェブブラウザーゲームなので、フィードなど便利な機能はまったく存在しません。 そこでウォッチしたいWebページに対してWeb::Scraperを使ってYAMLを出力する短いスクリプトを書いてしまいます。 メールを出すなどのこまご

  • Devel::NYTProf - モダンなPerl入門 - モダンなPerl入門

    開発がひととおりすんだが、なぜか速度がでない。そんなときにはプロファイラの出番です。 Devel::NYTProf をつかえば、プログラムのどこで時間がかかっているのかがまるわかりになります。 使い方は簡単です。 perl -d:NYTProf target.pl nytprofhtml とするだけ。 mod_perl にも対応しています。 なにより Devel::NYTProf の出力する HTML がカッコイイのがポイントですね。 目次へ Last modified: $Date: 2008-05-22T09:21:23.154313Z $

  • 1