タグ

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

  • vim で Perl を書くときのための tips - Articles Advent Calendar 2012 Casual

    @tokuhirom です。Perlを書き始めて8年ほど経ち、Perlで何か作る際の効率化の手法がそれなりに確立してきたので、それを思いつくままに紹介しようと思います。主に多言語から来てPerlにほどんど慣れてない方などを想定しています。 僕の秘伝のタレ的な .vimrc の中から perl に関係ある部分だけをぬきだしてお教えしましょう。すべて設定すればだいぶ快適になりそうです。とかかいてると教えるのもったいない気分になってきた。 ぼくの環境 僕は vim の環境として以下のようなものを指定しています。mattn さんからは DIS られがちです。 neosnippet unite.vim pathogen vim-perl プロジェクトの成果物をつかう https://github.com/vim-perl/vim-perl なんか最近、perl-vim から vim-perl にかわ

    vim で Perl を書くときのための tips - Articles Advent Calendar 2012 Casual
    kamipo
    kamipo 2012/12/13
    これは便利だといわざるをえない
  • 最強のケンオールを求めて - Parse::JapanesePostalCode - Articles Advent Calendar 2012 Hacker

    こんばんは、最近自己紹介する機会があったので「空前のKEN_ALL.CSVブームを作った事で有名です」って言ったら結構通じた yappo です。 と言う事で今日はわけあってどのように KEN_ALL.CSV を処理しているかについて書こうと思います。 使い方に関しては https://metacpan.org/module/Parse::JapanesePostalCode https://github.com/yappo/p5-Parse-JapanesePostalCode こちらをご覧頂ければいいです。マジ簡単だから誰でも使えます。 前提知識 http://www.post.japanpost.jp/zipcode/dl/readme.html こちらの 郵便番号データファイルの形式等 を良く読むとこのエントリの理解が深まります。 Parse::JapanesePostalCode

    最強のケンオールを求めて - Parse::JapanesePostalCode - Articles Advent Calendar 2012 Hacker
    kamipo
    kamipo 2012/12/13
  • すべてのデータベース接続を切断する - DBIx::DisconnectAll - Articles Advent Calendar 2012 Hacker

    息子のサンタクロース1号 kazeburo です。 ウェブアプリケーションなどでデータベースとの接続をリクエスト終了後に切りたいんだけど、アプリケーションのどこかで循環参照してたりで $dbh が解放されないとデータベースに接続が溜まり、データベースの最大接続数に達して新規の接続ができなくなり、正常にサービスが続けられなくなったり、椅子が飛んできたりします。 アプリケーションのバグがすぐに見つかり、接続の滞留が解消できればいいですが、そうではない時、このモジュールが役に立つかもしれません https://metacpan.org/module/DBIx::DisconnectAll https://github.com/kazeburo/DBIx-DisconnectAll 使い方は簡単。 use DBIx::DisconnectAll; dbi_disconnect_all(); dbi

    すべてのデータベース接続を切断する - DBIx::DisconnectAll - Articles Advent Calendar 2012 Hacker
    kamipo
    kamipo 2012/12/12
  • PDLで数値計算 - Articles Advent Calendar 2012 Casual

    こんにちは、週末海でマンボウを獲っていたらラギアクルスに襲われた@hirataraです。今回はPerl Data Languageについて紹介します。 Perl Data LanguageとはMATLABやNumpy、Rなどと同様に、多次元配列を効率よく扱って数値計算を実現するためのライブラリです。cpanmで普通にインストールすれば使えますが、グラフを描画したり格的な数値計算のライブラリであるGSLのバインディングを利用したりする場合はhomebrewでゴニョゴニョしたりする必要があるので、多少頑張って下さい。 基的にはpdl関数でオブジェクトに変更してから使います。 use PDL; my $pdl = pdl [[1, 0, 0], [0, 1, 0], [0, 0, 1]]; print $pdl; 【実行結果】 [ [1 0 0] [0 1 0] [0 0 1] ] pdlが

    PDLで数値計算 - Articles Advent Calendar 2012 Casual
    kamipo
    kamipo 2012/12/11
  • App::YG - ログをう゛ぁーてぃかるぱみゅぱみゅしちゃう!! - Articles Advent Calendar 2012 Hacker

    やあハッキングモンスターのみんな、元気かーい? ぼくは普通です。 きょうはみんなでログをう゛ぁーてぃかるぱみゅぱみゅしちゃうぞ!あ、こんにちは bayashi です。 さて、ログは見てるかい?cat してるかい? tail してるかい? GB単位のログを vim で開いてフリーズさせてやいないかい?ログは吐いたら終わりじゃいけないぜ!ちゃんとうぉっちしないと鬼がでちゃうぞ!! とはいえ、そんなログも、たいていは1行につらつらと書かれてて見るのがつらいね!!例えばこんなやつだ。 $ tail log 127.0.0.1 - bayashi [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://www.example.com/start.html" "Mozilla/4.0 (compatible

    App::YG - ログをう゛ぁーてぃかるぱみゅぱみゅしちゃう!! - Articles Advent Calendar 2012 Hacker
    kamipo
    kamipo 2012/12/07
  • 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
    kamipo
    kamipo 2012/12/06
  • AxsLog - Yet Another AccessLog middleware - Articles Advent Calendar 2012 Hacker

    「君のPSGIファイルを僕のミドルウェアでいっぱいにしたい」という台詞を思いついたけど、埋めれるほどPlack::Middlewareを書いてないkazeburo です。 そんな僕が一番最近書いた Plack::Middleware がYet Anotherなアクセスログ記録ミドルウェア AxsLog です。某二人組は今年でデビュー20周年らしいですが、あんまり関係ありません。 https://metacpan.org/module/Plack::Middleware::AxsLog Plackのコアパッケージの中に Plack::Middleware::AccessLog が含まれてますが、以前からこのミドルウェアが比較的「重い」ということが気になっていました。マイクロベンチマークですが、 $ cat test.psgi sub { [200,['Content-Type'=>'text

    AxsLog - Yet Another AccessLog middleware - Articles Advent Calendar 2012 Hacker
    kamipo
    kamipo 2012/12/05
    「君のPSGIファイルを僕のミドルウェアでいっぱいにしたい」
  • Karas - 漆黒の翼 - Articles Advent Calendar 2012 Hacker

    えーとこんにちは。tokuhirom です。 hacker track の4日目ということで、なんか書かなきゃいけないなあとおもっているんですが、最近あまりモジュールとかかいてなくて、今年だしたものといえば Test::Ika, Test::Base::Lite, Test::Pretty, Module::Build::Pluggable, LWPx::ParanoidHandler ぐらいのもの。。 あまりにも書くことがないので、O/R Mapper をかきました。 https://github.com/tokuhirom/Karas/ https://metacpan.org/release/TOKUHIROM/Karas-0.01 Teng よりも簡素で、結構つかいやすいものになりました。 Teng みたいな connection handling schema つくらなくてもつか

    Karas - 漆黒の翼 - Articles Advent Calendar 2012 Hacker
    kamipo
    kamipo 2012/12/04
    かっこいい
  • @__gfx__ は病欠です。 - Articles Advent Calendar 2012 Hacker

    @__gfx__ は病欠です。 - Articles Advent Calendar 2012 Hacker
    kamipo
    kamipo 2012/12/04
  • テストダブルについて - Articles Advent Calendar 2011 Test

    はじめに ikasam_a です。クリスマスイブいかがお過ごしでしょうか。私は寿司べたりしてました。 16日のエントリでテストダブル、特にフェイクやスタブについて触れましたが、今日はそもそもテストダブルって何ぞや、という話をします。またまた Perl の話はあまり出てこない予定です。 テストダブルとは http://xunitpatterns.com/Test Double.html:title=xUnit Test Patterns] で登場した言葉で、システムのある部分をテストするために特定箇所を置き換えることがあるが、その置き換え手段の総称として「テストダブル(代役)」という名前を当てたということです。 置き換え手段としては、以下の5つが挙げられています。 ダミー スタブ スパイ モック フェイク ダミー メソッド呼び出しの数合わせに使うことを目的とした、ダミーオブジェクトのことで

    テストダブルについて - Articles Advent Calendar 2011 Test
    kamipo
    kamipo 2012/01/03
  • HTTP通信を含むモジュールのテスト #2 - Articles Advent Calendar 2011 Test

    はじめに こんにちは。ikasam_a です。 8日目に bayashi さんが [/articles/advent-calendar/2011/test/8:title=HTTP通信を含むモジュールのテスト] というエントリを書かれていますが、今日はその続編的な話をします。 フェイクとスタブ 前のエントリでは Test::Fake::HTTPD を使ってフェイクサーバを立ててテストする、という手法が紹介されています。これは テストダブル (Test Double) で言うところの Fake という概念で、"動作するけど手抜き" なサーバを用意して実際に HTTP 通信可能にするってわけです。これで実際のサービスに DoS することなくテストできるので、積極的に使いたいところです。 テストダブルとは何ぞや?という話は、別のエントリでしたいと思いますので、今日はさらっと流してください! この

    HTTP通信を含むモジュールのテスト #2 - Articles Advent Calendar 2011 Test
    kamipo
    kamipo 2012/01/03
  • 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
    kamipo
    kamipo 2011/12/27
  • あるある ORM ドハマリ大辞典 - Articles Advent Calendar 2011 Dbix

    こちら Yappo の日でございますが、 Yappo の執筆ペースが芳しくないので、日も社員のオオサワが代打で「DBI」や「ORM」について書かせて頂きたいと思います。 trigger / hook point insert, update, delete クエリの前後処理を拡張して、レコード作成時刻の設定や update 時刻の更新はたまたレコード削除時に削除テーブルへの自動コピー等を、一度ベースクラス上で定義しておけば新しく作るテーブルへも use parent する等して簡単に適用出来きるように便利になりますが、うっかりしてると後続の開発者がハマったり制約が出てきます。 DBMS の trigger ORM の機能の trigger を多用していると、後続は DBMS 体の trigger を使う事に躊躇します。使っちゃいけないというわけではないでしょうが、一つのクエリに対する副

    あるある ORM ドハマリ大辞典 - Articles Advent Calendar 2011 Dbix
    kamipo
    kamipo 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
    kamipo
    kamipo 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
    kamipo
    kamipo 2011/12/22
  • 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
    kamipo
    kamipo 2011/12/20
    なに記法かわからんくてリンク失敗した… / xaicronさんが直してくれてた!
  • テストのためにデーモンを自動的に起動するやりかた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
  • 生DBIの構成例 - Articles Advent Calendar 2011 Dbix

    こんにちは、最近 Nintendo 3DS の電池が一瞬で切れてしまってまともにゲームができないと嘆いていたら「それ、HOME ボタン押してソフトをサスペンドすると電池減りにくくなりますよ」とスーパーハックを教えてもらった cho45 です。 DBI を生で使うときの罠はだいたいもう書いてあるし特に書くことがありませんし、DBIx 系は最近だと DBIx::TransactionManager 以外使ってないので、最近の僕の構成を紹介してお茶を濁します。 connect_cached を使わない 1リクエストごとに connect しなおすようにしています。1リクエスト内に関しては自力で dbh インスタンスをキャッシュするようにしています。 connect_cached はハマりがちで、DB サーバにコネクションを残しまくったりしたので、なんかもう面倒になってやめました。 SQL::Na

    生DBIの構成例 - Articles Advent Calendar 2011 Dbix
    kamipo
    kamipo 2011/12/18
  • 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
    kamipo
    kamipo 2011/12/12
  • データ分散とインデックス最適化のためのハッシュ関数の利用 - 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
    kamipo
    kamipo 2011/12/12
    まーまーはっしゅ!