perl
プロセスを並列に立ち上げて負荷を掛けるようなベンチマークを実行することって、よくありますよね。(例 : クエリキャッシュを切ったほうがいイカ? ベンチマークしてみた - 酒日記 はてな支店)Perl で Parallel::ForkManager を使うとそういう処理も簡単に…
Perl では $SIG{__WARN__} という疑似シグナルハンドラを使って、warn() で出力されようとする内容をトラップして処理することができます。 package MyWorker; my $logger = Fluent::Logger->new; sub work { my $job = shift; local $SIG{__WARN__} = sub {…
皆さん、ログ書いてますか!?(挨拶)Fluentd meetup in Japan も開催間近、最近大変熱いイベントログ収集システム Fluentd なわけですが、Perl からログを出力する Fluent::Logger というモジュールを CPAN にリリースしたのでお知らせします。 (最初の版は …
Kamakura Perl Mongers 発足ということで、テクニカルトーク #1 にスピーカーとして参加してきました。 # というかスピーカー枠に埋められていたというかスライドはこちら→Sys::Virt で仮想マシン操作 ですが、かなり手抜きですみません。トークの後半分ぐら…
今年もあとわずかですね。年末恒例の JPerl Advent Calendar、casual track に記事を書きました。 MySQL と SQLite に対応した DBIx なモジュールを PostgreSQL に対応させる Tips いくつか まあ誰得な内容なんですが、自分のやってきた作業をまとめて記録し…
YAPC::Asia2010 で、「nginx & Perl」という題名で20分の発表をさせていただきました。 発表資料はこちらにあげてあります 内容はざっくり nginx とおもしろげなモジュールの紹介、組み込み Perl の使いかたと注意事項、Plack Server に Reverse Proxy する…
後夜祭が終わって帰宅途中、不意に 今更 #yapcasia のiPhoneアプリ顛末について飛び込みLTすればよかったなぁと思いついた。後の祭り。2010-10-16 23:09:56 via TwitBirdと思ったのですがこれはまさしく後の祭り。なのでせめて顛末を書いておきます。YAPC::A…
最近人気エントリーに便乗したネタが多くてすみません。実用! PerlでコマンドラインからTwitter投稿(OAuth対応) では、Net::Twitter を使って OAuth で投稿する方法が紹介されていますね。ところで、単純な twitter bot 作るのに Net::Twitter 使います?…
なんか無茶振りされたので。 簡単!たった13行のコードでHTML取得&解析をするPerlスクリプト を Web::Scraper というモジュールを使って書き直すと、こんな感じになります。 use strict; use Web::Scraper; use LWP::UserAgent; use Encode; my $scraper …
Server::Starter の SYNOPSIS には、自分で Server::Starter 配下で実行するサーバを作る場合の例があります。 # in my_httpd use Server::Starter qw(server_ports); my $listen_sock = IO::Socket::INET->new( Proto => 'tcp', ); $listen_sock->fdopen((v…
キユーピー3分インフラクッキング -初心者にも優しいインフラ勉強会-の記念すべき第1回で、「Perl & Web Servers」というお題で発表させていただきました。 「初心者に優しい」というテーマだったので、199x 〜 200x 年の Perl と Web Server の関係について…
Perl-5.12.1 がリリースされたということで早速インストールされたかたも多いと思いますが、新しい Perl にモジュールを全部入れ直すのは面倒ですよね。ExtUtils::Installed を使うと楽ができます。 今まで使ってる perl でインストールされているモジュール…
カジュアルPerl #02 - 春のPerlフレッシュマンアワー で、LT をやらせていただきました。 今回は Editor と CPAN 特集ということなので「Edit with Emacs と Perl の話」というネタです。スライドは こちら に置いてあります。 動画は Ustream の録画で (自…
# チラシの裏です重いクエリをエミュレートするために Pl/PgSQL で sleep() を用意。(busy loop するので CPU 使います) http://www.issociate.de/board/post/130019/sleep_function.html create or replace function sleep (integer) returns time as ' dec…
独自の認証機能付き HTTP ダウンローダを提供するために、nginx の組み込み Perl を使ってみました。 公式のドキュメントはこちら。EmbeddedPerlModule - Nginx Community自前の handler でリクエストをみて処理を行い、許可するなら DECLINED を返して後続…
Perl で、あるコードが標準エラー出力に吐き出した内容をテストしたい場面がありました。自分でまず思いついたのは STDERR を dup して保存しておいて、ファイルにリダイレクトして、元に戻して、というやりかた。これはこれで動くのですが面倒。こういう場…
Casual track に引き続いて、 Hacker track の 17日目も書きました。Sub::Pipe で UNIX pipe みたいな関数適用をする
JPerl Advent Calendar 2009 casual track の 14日目を書かせていただきました。 こちらからどうぞ パスワード保存のお供に Crypt::SaltedHash
同じ機能を両方で書いてみたらどんな感じになるかなと。 起動されたコマンド名から SHA1 or MD5 を求めるように切り替わる コマンドライン引数があれば引数のファイルについて、なければ標準入力からの入力について SHA1(MD5) hash を求めて表示 こんな仕様…
http://d.hatena.ne.jp/tokuhirom/20090710/1247196134 この Coro の例を Go でやってみます。まず特定数 (ここでは 3) の worker thread を立ち上げておいて、そこにメッセージを送って仕事させるモデル。メッセージのやりとりに Coro::Channel を使います…
【注意】2009年10月16日現在の情報です。 【追記】 初出時にあった configure.ac, Makefile の問題は修正されたため、記事内容も修正しました。mod_psgi を試してみたのでメモしておきます。 Ubuntu 9.04 x86_64 Apache/2.2.11 (Ubuntu) Perl v5.10.0 built …
ちゃんと PREFERRED_PARSER を指定すること。 $XML::Simple::PREFERRED_PARSER = 'XML::Parser'; なにかこう、2005年ぐらいにみた感じの話題で恐縮なのですが。XML::SAX をインストールしたら、いきなり XML::Simple を使ってたコードが Cannot decode strin…
MinimalCGI だと $request->upload が CGI::Simple->upload の wrapper になっているので、他の interface みたいに HTTP::Engine::Request::Upload オブジェクトを返すようにしたかった。 まったく同じにはできなかったけど。 同じ name の input (type=fil…
http://github.com/fujiwara/p5-Data-Model/tree/masterData::Model を PostgreSQL でも使いたいので対応作業をやってみたら、テストまわりでいくつか困ったことが。 テーブル名 user は PostgreSQL では予約語のため、quote しないと使えない quote すれば…
Data::YUID::Generator が 32bit でも動くように Math::BigInt 使ってみた。ベンチマーク。new() が遅い。 # new->get_id Rate bigint original bigint 2635/s -- -95% original 51945/s 1872% -- # get_id Rate bigint original bigint 79591/s -- -70% ori…
何を言っているのか分からねーと思うが(ry Sub::Filter http://github.com/fujiwara/Sub-Filter/tree/master これを作って、さて CPAN に up しようかと思ったら dan さんが perl - id:sfujiwaraのFilter.pmをSub::Pipeに http://blog.livedoor.jp/dankogai/…
TT (Template-Toolkit) で値にフィルタを掛ける時に [% value | replace('x','y') | uri | html %]みたいに書きますが、Text::MicroTemplate だと仮に replace(), uri() という関数を用意しても こんな感じ。なんか読みにくい気がする。(まあ PHP だってそう…
PostgreSQL で簡易に MQ - Mi manca qualche giovedi`? を読んで、こりゃ素晴らしいと思ったので Perl モジュール化しました。 simple message queue using PostgreSQL. http://github.com/fujiwara/perl-queue-q4pg-lite/tree/master 割と簡易な Message Qu…
CouchDB は面白いのですが、Erlang で書かれた daemon を動かす必要があるので、環境によっては使いにくい。 ということで、Perl + DBI のみで似たような動作をするものを作ってみました。daemon じゃなくて、Perl から直接 DB を扱うライブラリです。 Coder…
おそらくものすごく役に立つ人が少ない情報。Perl で Salesforce 使ってる人どれぐらいいるんだろうか。 独自オブジェクトを WWW::Salesforce で扱う際に、カラムの型を定義してやらないと 2byte 文字とかが入らないので、0.082 までは $WWW::Salesforce::Co…