タグ

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

  • Net::APNs::Extended - あなたに通知を送りたい - Articles Advent Calendar 2012 Hacker

    やぁみんな!!今というライフをエンジョイしているかーい!?私は普通です。 今日は、みんなにとってもクールでハッピーなモジュールを紹介してやるぜ!あ、こんにちは xaicron です。 それはこいつだ! iOS に通知を送るためのモジュール、その名も Net::APNs::Extended っつーんだ。よろしくな!!昔、typester さんが AnyEvent::Net::APNS って言うモジュールを出してますけど、できることは大体一緒です。 使い方はベリィイージー!!まずは、にっくき Apple に諸々とアプリの申請をだしたりして紆余曲折の末にクライアント証明書を手に入れてくれ!!もちろんそのためにはプッシュ通知を受け取る iOS アプリが必要なので頑張って書いてください。 証明書とアプリができたらあとは送るだけ!!!と見せかけて、まずは端末から device token っつーのを取

    Net::APNs::Extended - あなたに通知を送りたい - Articles Advent Calendar 2012 Hacker
    xaicron
    xaicron 2012/12/06
    かいたーよー
  • カジュアルにデータを確率とか優先度で処理する - Articles Advent Calendar 2012 Casual

    こんにちは、こんにちは。カジュアルにPerl使っているkoba04 です。 Webアプリを作っていて、確率で処理を分けたり複数の要素を重み付けて選びたいことってありませんか? 真っ先に浮かぶのはガチャみたいなものですが、それ以外にもランダムでバナーを出し分けてみたり、接続するサーバーを重み付けて選んだり色々と使い道が思い浮かびます。 そんな時に使える二つのモジュールをご紹介したいと思います。 詳しくは下記の作者の方のブログを見てください。 Sub::Rate Data::WeightedRoundRobin 以上! でもいいのですが..順番に紹介してみたいと思います。 モジュールなしで実装 優先度を付けてデータを選びたい時はrandを使っての実装が思い浮かびますが、バグりそうな気もするし面倒だし出来れば書きたくないです。 (書き方が悪いという説もある) # 結果をdumpする関数 sub

    カジュアルにデータを確率とか優先度で処理する - Articles Advent Calendar 2012 Casual
    xaicron
    xaicron 2012/12/04
    寿司!!
  • @__gfx__ は病欠です。 - Articles Advent Calendar 2012 Hacker

    @__gfx__ は病欠です。 - Articles Advent Calendar 2012 Hacker
    xaicron
    xaicron 2012/12/04
    グロ注意
  • All Test::Successful - Articles Advent Calendar 2011 Test

    はじめに こんにちは、xaicron です。みんな、僕のグラビア写真は買ってくれたかな?買ってない人は WEB+DB Press vol.66 を今すぐゲットだぜ!! さて、ついに長かった Test Track も最終日がやって参りました!みなさんはどうせリア充を尻目にリナカフェの閉店を見たり、独り者同士でなんとなーく集まってお酒飲んだり、もしくは僕のように一人寂しく Advent Calendar を書いているのでしょうね!!その昔、コンビニでゆでたまご買って間違って「あ、あっためてください」っていっちゃったことを何故か思い出しました。 というわけで、クリスマスぐらいはせめてテストを書きたくないし、そもそもコケたテストとか見たくないわけですね。ですので、僕からのスペシャルなクリスマスプレゼンツ!!その名も Test::Successful だぜ!ベイベー!! これはなに? これはあれです

    All Test::Successful - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/25
    完走しました!あざす!!
  • STF分散オブジェクトストレージ - Articles Advent Calendar 2011 Hacker

    lestrratです。日めでたく正式にSTFがオープンソースとしてlivedoor ラボ EDGE上でリリースされました! プレスリリースはこちら。 いままでちょこちょこと先出し先出しで情報をだしていましたが、これで当に当の正式公開です。一応上記のサイト以外に「公式」サイト的なものも用意しました。ソースコードはgithub上に公開されています。ということで使って欲しいので紹介記事です。 STFは分散オブジェクトストレージです。Perlメインの似たようなシステムとしてはMogileFSが有名ですが、STFは後発のメリットを生かしてPSGI互換にしたり、使用するプロトコルを基的にHTTPというオープンで枯れた技術を採用したりとメンテナンス・運用の利便性があがっていると考えています。 歴史 STFは元々ApacheモジュールといくつかのPerlワーカーで書かれていましたが、ひょんなことか

    STF分散オブジェクトストレージ - Articles Advent Calendar 2011 Hacker
    xaicron
    xaicron 2011/12/22
    かっこいい!
  • prove についてのおさらい - Articles Advent Calendar 2011 Test

    はじめに 忘年会シーズンまっただ中で皆さんは毎日お酒を飲んでいることでしょうが、僕は友達が少ないため忘年会とか全然無いので財布はまだホットな状態なんですが、なぜ僕の妹は小鳩ちゃんじゃないんだっていうかそもそも妹いないしもう死ぬって感じの xaicron です。こんにちは。 そろそろ prove について簡単に説明しときますよっと。 prove のよく使うオプション prove にはいっぱいオプションがあるんですが、ここではよく使いそうなやつをピックアップして紹介しちゃいますよ! -v, --verbose # いっぱい出力する -l, --lib # lib を INC についかする perl -Ilib 相当 -b, --blib # blib/lib とか blib/arch を INC につかする -Mblib 相当 -c, --color # カラフルになる! MSWin32 だと

    prove についてのおさらい - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/21
    書いたよー
  • DBIx::QueryLog でクエリの実行計画も丸見えにする! - Articles Advent Calendar 2011 Dbix

    好きって言葉は最高さーー!!!!kamipoです!!今日はAKB48の紅白対抗歌合戦があるので急いでいきたいと思います!! DBIx::QueryLog で EXPLAIN の結果もロギングしたい xaicron さんの9日目のエントリ、[/articles/advent-calendar/2011/dbix/9:title=DBIx::QueryLogDBI で実行された SQL を丸見えにする!]でおなじみの神モジュール DBIx::QueryLog 便利ですよね!? でもEXPLAINの結果もロギングできたらもっと便利だと思いませんか?僕は思いました!! そこで、EXPLAIN の結果もロギングできるパッチを取り込んでもらったので、新しいのが出たら使えるようになると思います!(いまはまだMySQLだけですが…) つかいかた とくにクエリに意味はないですが、こういうクエリを投げる

    DBIx::QueryLog でクエリの実行計画も丸見えにする! - Articles Advent Calendar 2011 Dbix
    xaicron
    xaicron 2011/12/21
    よっしゃいくぞー!!
  • テストのためにデーモンを自動的に起動するやりかた2011年版 - Articles Advent Calendar 2011 Test

    はじまりはパクり 最近あんまりコード書いてません、lestrratです。 テストを走らせる時にいろんな他のデーモンを立ち上げたり、そのテストのためだけの設定を先にしないといけなかったりとか色々ありますよね。結構長い間Makefile.PLはModule::Installで書いていたせいもあって、ちょっと前にxaicronさんが書いてたModule::Install::TestTargetでごにょごにょやってたのですが、ちょっと前にYappo/tokuhiromさんがproveで書いてたセットアップがまるっと自分の欲しい用途にも使える事に気づいたのでいろんなアプリケーションのテストをそのように変えてみました。 流れ proveでテストをすると、proveのプラグインを呼び出す設定ができるのですが、これをプラグインというよりテスト前に実行されるフックとして利用する事によって任意の設定用のコード

    テストのためにデーモンを自動的に起動するやりかた2011年版 - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/20
    すばらしい!
  • テストのカバレッジを出す - Articles Advent Calendar 2011 Test

    はじめに 最近腰痛と肩こりで寝るのも辛い xaicron です。凝り固まった体と心を優しくときほぐしてくれる。そんな人間を皆さんには目指して欲しい。 さて、今日はテストのカバレッジを取る方法についてちょろっと書こうと思います。 カバレッジというと原理主義てきな人たちにはご褒美であり、僕らのような lazy な人間にはちょっとめんどくさいなって感じますね。 要件的議所とかにカバレッジ率 100% を目指せ!みたいなことが書いてあったりして、それが目的になっちゃったりすることもあるかと思います。 でもまぁ、カバレッジを上げることが当の目的ではないので、あくまでも目安として使うぐらいでいいでしょう。だってカバレッジ上げるとかめんd(ry カバレッジを取る perl でカバレッジを取る方法といえば Devel::Cover ですね。他にもいろいろありますが。 とりあえず、テストしたいプロジェクト

    テストのカバレッジを出す - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/15
    かいたよー
  • Test::Exception で Death テスト - Articles Advent Calendar 2011 Test

    こんにちは。ikasam_a です。 今日は、以前のテスト分類のお話とは一転して Test::Exception というモジュールを紹介します。 これを使うと、実行中に die しちゃうようなコードを気軽にテストできます。 例えば、アイコンを作りたいんだけど不正な状態だったら例外投げちゃう感じのクラスがあるとしますね。例ですよ。そんなクラスのテストもこんな感じで書けるようになります。 use Test::More; use Test::Exception; use My::Icon; lives_ok { My::Icon->new(+{ name => 'ikasam_a', state => 'cute' }); } 'icon is cute'; dies_ok { My::Icon->new(+{ name => 'nekokak', state => 'cute' }); } '

    Test::Exception で Death テスト - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/15
    エラー処理のテスト
  • データ分散とインデックス最適化のためのハッシュ関数の利用 - Articles Advent Calendar 2011 Hacker

    はじめに こんにちは、piarra です。みなさん、意識は高まっていますか?私は上々です。 という書き出しをやめたくてやめられなかったのが心残りです。 昨年までは、Casual Trackで寄稿させていただいていましたが、今年はYAPCで話したこともあり、Hacker Trackに初挑戦させていただきます。得意のMD5暗算法とその習得法について解説したいと思っていたところですが、より日常に役立つ方がよいかと思い、MD5やその他のハッシュ関数の活用法について少し触れてみたいと思います。 データサンプル DBMSを考慮せず、以下のようなデータサンプルがあったと考えてみましょう。 +----+-----------------------+ | id | url | +----+-----------------------+ | 1 | http://www.google.com | | 2

    データ分散とインデックス最適化のためのハッシュ関数の利用 - Articles Advent Calendar 2011 Hacker
    xaicron
    xaicron 2011/12/13
    はっしゅむらむら
  • DBI のお供になりそうなモジュールたち - Articles Advent Calendar 2011 Dbix

    師走にも関わらず風邪を引いてしましました。こんばんは、zigorou です。 今日は DBI のお供になりそうな拙作モジュールたちをご紹介します。 Data::RuledFactory p5-data-ruledfactory で開発中のモジュールです。 主要機能は大体出来てるんですが、後はテストを充実させて pod をきちんと書いたらリリースしようかなとか思ってる所です。 とはいえ現時点でもやりたいなと思っている事は既に出来ます。 論より証拠と言う事で、examples フォルダにある 001_define_rules.pl についてちょっと解説。 #!/usr/bin/env perl use strict; use warnings; use FindBin; use lib "$FindBin::Bin/../lib"; use DateTime; use Data::RuledF

    DBI のお供になりそうなモジュールたち - Articles Advent Calendar 2011 Dbix
  • Jenkinsで継続的メトリクス測定のすすめ - Articles Advent Calendar 2011 Test

    はじめに こんばんは、家で凍死しそうなので、そろそろセラムヒートでも買おうと思っているdannです Test Track 11日目です! ikasam_a さんから「Jenkinsの話を書いて!」と言われたので、ACDD(Advent Calendar Driven Development) という手法で作った、メトリクス測定ツールとJenkinsへのインテグレーションについての話をします。 メトリクスを測定すると捗るぞ 大きなチームで開発する時に、数百行の謎メソッドができたりとかあったりしますよね(涙) 僕は、Working Effectively With Legacy CodeやClean Codeを読んでいること前提にチームの人がコードを書いていると思っていたら、あれ?という場面があったりします。こういうときは、品質の問題を測定できるようにすると、数値レベルで具体的にした共通認識が

    Jenkinsで継続的メトリクス測定のすすめ - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/11
    メトリクス!
  • DBIx::Simple ふたたび - Articles Advent Calendar 2011 Dbix

    タイガー&バニーの、原稿が遅れがちな方、トミールです! 今日は DBI へのシュガーシンタックスを追加するラッパー、DBIx::Simple の紹介です。 実は DBI そのものって相当高機能である!、というのはこのアドベントカレンダーでもいろいろ紹介されると思います。が、やや不親切なメソッドの引数の感じを見て、ゴロゴロ DBI のラッパーが作られていたりします。そんななか DBIx::Simple がやはり良いと思うのはわかりやすくシンプルな API を提供する、という点で一定の成功を収めていると思う点です。 ※ ただしわかりやすい API のトレードオフとして、結果のステートメントハンドルを bless するタイプです。もし blessする(結果オブジェクトを作成する)コストが問題になるようなハードコアな環境で開発されている方は普通に DBI を素で使えばよいと思います。 DBIx::

    DBIx::Simple ふたたび - Articles Advent Calendar 2011 Dbix
    xaicron
    xaicron 2011/12/09
    DBIx::Simple::Innject
  • DBIx::QueryLog で DBI で実行された SQL を丸見えにする! - Articles Advent Calendar 2011 Dbix

    こんにちは、最近 PSP1000 の電池が一瞬で切れてしまってまともにゲームができない xaicron です。 さて、みなさんは DBI から吐かれた SQL をみたいなーと思うこともあるでしょう。 そんな時は、$ENV{DBI_TRACE} = 2 とかしてみると、ドバーッといっぱいデバッグログが出てきて、 その中に実際に発行された SQL がちょろっと出てたりするのでこいつを頑張ってパースすればいい感じですね! っていうのはだいぶ面倒だったりしますね。あたりまえですね。 そこで、use するだけでとりあえず全部の発行された SQL を STDERR にはいてくれるモジュールを書きました。 その名も DBIx::QueryLog です。そのままですね。 つかいかた 使い方は至極簡単で、どっかで適当に use するだけです。ほかには何もいりません。 そうすると、以下のような感じで STDE

    DBIx::QueryLog で DBI で実行された SQL を丸見えにする! - Articles Advent Calendar 2011 Dbix
    xaicron
    xaicron 2011/12/09
    書いたよー
  • HTTP通信を含むモジュールのテスト - Articles Advent Calendar 2011 Test

    こんにちは!こんばんは!寒いのがめっぽう苦手、bayashi です! きょうは、HTTP通信を伴うモジュールのテストについて書いてみます! サンプルモジュール WWW::Foo8 具体的に説明するために、WWW::Foo8 というモジュールを書きました! package WWW::Foo8; use strict; use warnings; our $VERSION = '0.01'; use Class::Accessor::Lite ( rw => [qw/agent error/], ); sub new { my ($class, %args) = @_; $args{agent} = _default_agent() unless $args{agent}; bless \%args, $class; } sub get { my ($self, $uri) = @_; my

    HTTP通信を含むモジュールのテスト - Articles Advent Calendar 2011 Test
  • ベンチどうしますか? - Articles Advent Calendar 2011 Dbix

    どうもnekokakです。 みなさんDBIを使っているコードのベンチマークってどうしてますか? SQLのチューニングであればいいのですが、ロジックのベンチマークを取りたい時に 実際にdatabaseにクエリなげてしまうと、ネットワーク通信等が発生し、細かいロジックのチューニングの邪魔になることがあります。 たとえば私はTengのチューニングをするときに、バックエンドのdatabase性能なんてどうでもよくて、 プログラムの性能をみたいわけです。 そんなときに便利なのがTest::Mock::Guardです。(え Testというnamespaceにありますが、やっていることはコードをさしかえることなので これをつかって実際にデータベースにクエリなげるところとかをフガフガします。 例えばTengのベンチマークを取る時に試したコードは以下のようなものです。 #! /usr/bin/perl us

    ベンチどうしますか? - Articles Advent Calendar 2011 Dbix
  • Test::MockTime - 時間にまつわるtest - Articles Advent Calendar 2011 Test

    はい、kawamotoです blogは書いているとはとても言えないぐらいサボっております。 右も左もわからぬひよっこですので奇をてらわずにTest::名前空間のモジュールの紹介をしようと思います。 Test::MockTime は testの最中に実行される time, localtime, gmtime などの時間に関する関数の振る舞いを書き換える便利なモジュールです。 以下のような症状によく効きます。 テストの期待する結果に時刻を入れたいが固定の値を指定できない。 外部のコンポーネントに存在する、時間で変動する要素に依存しないテストを書きたい(たとえば MySQL で時系列のパーティションを使っているなど) テストを実行するたびに経過時間が変動してtestが通ったりこけたりする 使い方はこちらの記事でも説明されていますが、 $ cat ~/test.pl use feature qw(

    Test::MockTime - 時間にまつわるtest - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/07
    時間を固定するテスト
  • PerlとOracleDatabaseでの性能試験(データ増幅) - Articles Advent Calendar 2011 Test

    はじめに はじめまして! dukkiedukkie と申します。 知人にこちらを教えて頂きまして登録させていただきましたが、予備知識なく&&不慣れでご迷惑おかけすると思いますが、よろしくお願いいたします!! IT業界を16年ほどさまよっており現在はPerlで色々書いてます。が、ゴリゴリのプログラマというわけでもなく 前職は某ポータルサイトにて広告システム全般のシステム基盤設計とシステム運用、前々職は某金融システムにてDBA(Oracle中心)、その前は某ブログシステムのDBA(Oracle中心)、さらにその前は、某IT情報配信サイトのエンジニアとして、働いてきた90年代CGIプログラミングを原点とする”オッサンPerler”です。 ですが、どんどん新しいことを学びたいので、なかよくしてくださいね!! データベースの性能試験とPerl さて、ほとんど準備もしておりませんため(次回はがんばりま

    PerlとOracleDatabaseでの性能試験(データ増幅) - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/07
    異彩を放っている!
  • それCallbacksで - DBIxを作りだす前に - Articles Advent Calendar 2011 Dbix

    どうもkazeburoです。DBIx Trackなのに、DBIxを作らない話。 myfinderさんがDBIxを作る第一歩としてDBIのサブクラスの作り方を紹介しましたが、実際にDBIxを作り出す前に、その機能がDBIの標準機能でできないか調べるのがオススメです。 Callbacksの基 CallbacksはDBIに標準で用意されているHook機能です。 my $dbh = DBI->connect('dbi:SQLite:dbname=test.db','','', { RaiseError => 1, PrintError => 0, Callbacks => { connected => sub { ... } } }); 接続時のAttributesにCallbacksを追加します。上では接続が完了(connected)したらcoderefが呼び出されます。 接続時にテーブルを作

    それCallbacksで - DBIxを作りだす前に - Articles Advent Calendar 2011 Dbix