タグ

ブックマーク / mt.endeworks.jp (20)

  • Perlでシグナル処理(DBIを黙らせる編) - D-6 [相変わらず根無し]

    Perlでシグナル処理(DBIを黙らせる編) 2011年4月27日 01:42 D | ブログ記事のURL | コメント(0) | トラックバック(0) なんかふと気づいたら最近以前書いたPerlでシグナル処理の記事にブクマがついていたので続き的な感じで書いてみた。 例えば 以下のように、ワーカーとかでずーーーーっとDBにクエリを投げてその結果を使って処理をする、というような処理を書くとする while ( $loop ) { my $sth = $dbh->prepare( .... ); $sth->execute(); while ( $sth->fetchrow_arrayref ) { .... } } 以前書いた%SIGを用いたPerlの普通のシグナル処理では、もしexecute()でブロックしていた場合など(例:Q4Mでqueue_waitしてる)ではいくらSIGINTとかを

    hirose31
    hirose31 2012/01/12
    $SIG (safe signal)じゃなくてsigactionの件
  • 食べる量。 - D-6 [相変わらず根無し]

    べる量。 えー、とうとう33歳になってしまいまして。 で思い返すに最近・・・そうですなぁ、ここ2年くらいですかね。なんだか急速に体の衰えを感じているのです。特に飯。どうもね満腹中枢と理性と内蔵の処理能力がいまいちシンクロしてないのです。 例えばお昼に出るじゃないですか。気分的にはお腹も減っていてそれこそ近所のもうやんカレーとかべられるんじゃないかという感じなんですが、最近それをやってしまうともう後で膨満感で仕事にならない。他の店でも例えば昔はぺろりといけていた大盛り注文も最近は後で来るのでべられない。そのべてる瞬間はいける、と思うし実際完まではできるんだけど、後でくるんだよなぁ・・・ まぁそんなわけでさすがに僕も馬鹿じゃないのでだんだんその事が分かってきて昼飯は今までと比べると軽めにしてみてうどんとかべたりしてるわけですが、それでもやっぱり「あ、この店大盛りがあるんだ・・・」と

    hirose31
    hirose31 2010/07/14
    リトルショップ登山の前振りですねわかります。
  • Plack/Starman Daemontools Run File With Complete Deploy Bundle - D-6 [相変わらず根無し]

    Plack/Starman Daemontools Run File With Complete Deploy Bundle 注1:まだ番にはデプロイしてませんが、テストでは使いました。 注2:以下スクリプトは開発者の労力を減らすためのスクリプトで、万全なデプロイ方法だとか言うわけではありません。 注3:正直シェルスクリプトは素人です。 ここ最近のアプリケーションのバンドル・デプロイについてちょっと固まりつつあるので、書いてみる まず アプリケーションと、その依存関係。デプロイ側のサーバーにはlocal::libと必要なModule::Install系のモジュール、それにModule::Install::Bundle::LocalLibがインストールされている前提です。アプリケーションの依存関係は全部Makefile.PLに書きます。 use inc::Module::Install;

  • q4mのconditional subscriptionにびびった件 - D-6 [相変わらず根無し]

    q4mのconditional subscriptionにびびった件 Mvalveをリリースして、色々機能改善をする前にベンチマークを書こうと思いました。なのでまずQueue::Q4Mにてベンチマークですよ。 Queue::Q4M 0.00007のmiscディレクトリ内にベンチマークがあります。ってことで、以下の条件でベンチマーク走らせてみました ストレートに1000件入力してから1000件全部conditional無しで抽出する1000件+その約50倍のダミーデータの中から、conditionalにマッチする1000件を全部抽出するという2パターンで実験した結果が以下の通り >> executing default + Start Tue Jul 8 01:54:44 2008 + End Tue Jul 8 01:54:53 2008 + Processed 1000 message

    hirose31
    hirose31 2010/01/21
    【コンパクションが走るタイミングは.q4mファイルが16MB以上、かつそのファイル内の空き容量が75%以上ある時だそうです。いつこれが起こるかはアプリケーション依存ですな。でも必ず起こるそうです。】
  • Repeated dispatch with AnyEvent - D-6 [相変わらず根無し]

    Repeated dispatch with AnyEvent 例えば、AnyEvent::DBIで Q4Mを使って、*常に*なんらかのイベントをqueue_wait()する状態にしたいとする。するとexec()が終わったらまた同じexec()を呼ぶ事になるので、例えばこんなコードを書くかもしれない。 use strict; use AnyEvent::DBI; my $sql = "SELECT .... FROM queue_table WHERE queue_wait('queue_table', 10)"; my $dispatch; $dispatch = sub { $dbh->exec( $sql, sub { # 返ってきた値でなんかする $dispatch->(); }); }; $dispatch->(); # まぁ他の事してるプログラムで使うだろうから、来はいらな

  • 仕事・雇用・ライフスタイル - D-6 [相変わらず根無し]

    仕事・雇用・ライフスタイル とくにまとめず、だらだらと書きます。 「日のサラリーマンのようになれないwので辞任します」を読んで思うのは、仕事>家庭(個人の時間)である必要は全くないんだけど、それであるなら被雇用者は単位時間当たりの生産性を最大限にあげる努力をしないといけないと思う。 だって日の会社ってダラダラ会社に居続ける人いっぱいいるじゃない。9-5時で仕事びしっとやってびしっと帰ればいいじゃないの、といつも思ってるのだが。 それと同時にこういう非生産的な風潮を取り締まるのも難しいんだよね。例えば日の企業では雇用者が雇用関係を解消するのに手かせ足かせをはめられている。これは会社が雇ったからにはその個人の面倒を見ろ、という事だと思うんだけど、それだと逆に生産性の著しく低い人と雇用関係を結んでしまった時に困るんだよね。経営者としては潜在的な赤字を生み出す原因は取り除かないといけないわけ

    hirose31
    hirose31 2009/09/02
  • 伊豆で休息(おまけ付き) - D-6 [相変わらず根無し]

    伊豆で休息(おまけ付き) アホみたいに忙しかった12月〜2月くらいの間にもうどうしてもたまらなくて5月の連休明けに伊豆旅行を衝動的に予約しておいたので、先週末行ってきた。 今回は例のの印税の一部を使って自分的には豪遊。3日間、ネット回線もない旅館で上げ膳据え膳、う寝る湯につかる以外のことをほとんど何もせずにぼ〜〜〜〜〜っと過ごした。体力が大分チャージされたのを感じる。 しかしネットのないところに泊まるって、4,5年ぶりじゃなかろうか。メールもチェックしないなんてほんとう久しぶり。ネットのつながらない状況でPixisを継承して新しいアプリを作るためのハックをいろいろとしてみたくらい。あとは当に当になんもせんかった。 1年に一回くらいはこういうのしたいよなぁ。またを書かせてもらうか・・・ おまけ。休息する俺様 サウナでしゅ〜しゅ〜言ってるところ。 カテゴリ 日常 2009年5月25

    hirose31
    hirose31 2009/05/25
    しゅ〜しゅ〜
  • JPA Semniar #1 (第一回旗揚げセミナー!) - D-6 [相変わらず根無し]

    JPA Semniar #1 (第一回旗揚げセミナー!) Japan Perl Associationセミナー#1 を開催します。 記念すべき第一回旗揚げセミナーです! 秋葉原UDXでCatalystを使い倒す話とMoose等の最新ベストプラクティスに関しての話になる予定で、講師はJay Shirley氏です。日ではまだあまり名前が売れてないかもしれないですが、トップレベルの技術者で、CatalystやDBIx::Classなどを現場でどう生かすのかというノウハウについては絶大なるものを持っています。また、最近ではMatt Trout氏らとEnlightened Perl Origanisation (EPO)という、エンタープライズ分野でPerlを使うためのノウハウやサポートの提供を行う団体を立ち上げています(EPOはThe Perl FoundationなどよりもJPAにかぶるかもし

    hirose31
    hirose31 2009/03/11
  • 「モダンPerl入門」書きました。 - D-6 [相変わらず根無し]

    「モダンPerl入門」書きました。 モダンPerl入門 今みたらAmazonでも表紙が入稿されたらしいので宣伝させていただきます。えー、モダンPerl入門というを翔泳社さんから出版させていただくことになりました。でも最初に断っておきます。誤字脱字はある気がします。ごめんなさいごめんなさい。日語不得手なんです(こういう時だけ帰国子女カードを使わせていただきます)。 ともあれ、内容的には自分が普段Perlを使っていて、同僚とかに知っておいてほしいな、って思っている実践的な内容ばかり書きました。このはたとえPerlがメインの言語ではなくともPerl仕事で使っていて、なおかつ初級〜中級のあたりでうろうろしてしまっている人たち向けに書いています。初級者向けの構文説明はほとんどありません。上級者向けのわけわかんないところはXS以外ありません(はい、XSの入門あります)。ほとんどは、Perlで業

    hirose31
    hirose31 2009/01/17
  • JPAを今このタイミングで設立するわけ or 2009年に向けて - D-6 [相変わらず根無し]

    JPAを今このタイミングで設立するわけ or 2009年に向けて JPAは社団法人で公益法人はとりあえず面倒くさいのと人手がないので目指さないものの、公益性の高い法人として活動していく予定で、今そういう方向の定款をがんがん書いております。 ところでこの間某社を訪れた時に「この時期にこういう事をするなんてチャレンジャーだね」的な事を言われました。この経済情勢の中、というのはよくわかりますが、私は今こそがチャンスだと思っています。不景気と言われるときこそ器用なPerl技術者は重宝されるはず。今年弊社endeworksで雇ったFさんにしてもそうだけれども、Perlプログラマはとにかく現実的・合理的、そして広い知識を持っている。buzzword満載の言語ではなく、質実剛健なPerlを助成・発展させるための団体を作るならば時期は今こそ、でしょう。 また、協賛してくれる各社は今が我慢のしどきだと思って

    hirose31
    hirose31 2008/12/18
    印税★生活
  • 「山の、山の頂上が見えません!」@リトルショップ - D-6 [相変わらず根無し]

    「山の、山の頂上が見えません!」@リトルショップ ちょっと前に33rpmさんと渋谷は松濤にあるリトルショップというカレー屋があるので行ってきたのです。そこのカレーはまぁなんというか、おいしいし安いし、いいんですが、ラーメン界に「二郎」があるように、そこはカレー界の二郎とでも言うべき店なんですね。なんというか、「ラーメン二郎はラーメンではない」的なノリで。しかも量も半端無い。 そこの有名?メニューが「Cセット」もしくは「気まぐれカレー」というヤツなんですが、大量のライスとカレーの上に鶏唐揚げ、とんかつ、目玉焼き、茄子の素揚げ、ピーマンの素揚げ、ひじき、それに厚揚げがのるというものでして。これだけで足りない方にはこの上にご飯とカレー増量、ゆで卵追加、ほうれん草の茹でたもの追加、という「大盛り」もあります。 で、その33rpmさんとべに行った時僕はこの「Cの大盛り」をあまり情報を与えずに他人に

    hirose31
    hirose31 2008/06/30
    「カレーに登る」って表現いいなぁー
  • YAuthスペック - D-6 [相変わらず根無し]

    YAuthスペック Yauthとは"Yome(嫁) Auth"の事で主に男性が婚姻関係、もしくは親密な関係にある女性に対しての認証を得るために使われるプロトコルです。トランスポートレイヤーは電話やメールが使われる事が多いですが、スペック上の規定は特になく、プラッガブルな実装を可能にしています。 プロトコルに参加するのはPeer (同僚・友達)、Client (認証を得たい人物), End Point (嫁)の三者です。プロトコルが発動する前に、PeerよりClientにProbe (お誘い)メッセージが送信されます。この時点ですでにキャッシュされたEnd PointよりのレスポンスをClientが持っている場合はただちにClientからPeerへ返答が返ります。 キャッシュされたレスポンスがない場合はClientよりEnd Pointに実装依存のトランスポートレイヤーに乗せてクエリーが投げ

    hirose31
    hirose31 2008/05/30
    YAuth
  • *GLOB自重 - D-6 [相変わらず根無し]

  • Perl5 C Functions You Don't Know About - D-6 [相変わらず根無し]

    Perl5 C Functions You Don't Know About Perl5は実にさまざまな環境で動く。すると当然だが、C/XSでコードを書くときはその辺りも考慮にいれつつコードを書くのが良い。 File::MMagic::XSはApacheもmod_mime_magicをXSから直接使えるようにポートした物だ。これをPerl用にポートするとなると当然APRが使えないので環境の差を吸収してくれるレイヤーがなくなってしまう。んじゃあそのままCの関数使えばいいのかというと・・・Perl5がすでに吸収してくれるところが結構おおいのだな。 perldoc perlclibとすると、その辺りのC関数→Perlの内部関数の対応表を出してくれる。 が。書いてないものもある。そういうのはperlのソースコードを展開したところで.hファイルを色々grepしてるとでてくるので積極的に使っていくとい

    hirose31
    hirose31 2008/04/24
    Devel::PPPort ppport.h で異なるバージョンのPerl間のAPI互換性をとる
  • CoroでFlickrにアクセスする - D-6 [相変わらず根無し]

    CoroでFlickrにアクセスする もうずいぶん前からCoroを使いたくて使いたくてしょうがなかったのだが、やっときたよ。Flickr APIを叩いて、非同期I/OしながらCoroで写真の情報をダウンロードするよ! まず某sukebeさん作のWebService::Simpleを使ってみるよ(当に使ったコードは違うフレームワーク用にいろいろついてたので、あまり利便性とか考えずに説明用のコードだけ書きだします) package MyFlickrModel; use strict; use WebService::Simple; my $webservice = WebService::Simple->new( \%必要な引数 ); # 写真のIDを渡すとinfo, context, sizes, permsを全部ひっぱってくる sub find_photo { my $class =

  • Text::CSV_XS->getline()メモリリークパッチ - D-6 [相変わらず根無し]

    Text::CSV_XS->getline()メモリリークパッチ この間もメモリリークを通報してくれたところからまたメモリリークで困っているという通報が来たので、チェック。普段は$csv->parse(); $csv->fields()を使っているのだけれども、どうもパフォーマンス的にgetline()のほうが速いのでそちらを使いたいとのこと。 まず以下のテストコードを動かしてメモリを観察 use strict; use blib; use Text::CSV_XS 0.36; print "My PID: $$\n"; my $line = join("\t", ('a'..'z')) . "\n"; my $csv = Text::CSV_XS->new({ sep_char => "\t" }); my $iter = 10000; my $data = $line x $iter;

    hirose31
    hirose31 2008/03/17
    【「今使い終わったら、次にチャンスがある時にメモリ解放される」という存在だ。これを設定するには、変数を作成後、sv_2mortal()という関数でフラグをつける:】
  • daemontoolsはMacBookのCPU温度をあげる? - D-6 [相変わらず根無し]

    daemontoolsはMacBookCPU温度をあげる? 追記:daemontoolsはMac OS Xではpollを無効にするような事をしなくてはならないらしいです(id:kazuhoさんありがとう!)。 http://d.hatena.ne.jp/kazuhooku/20071014/1192379775とhttp://qmail.jms1.net/djbdns/osx.shtmlの辺り参照 --- MacBook返ってきた>< 電話が来て、その人によると「ハードウェア的に直せるところは全て直しました」「ですが、まだブート時にファンが相当まわっているようです。これはソフトウェア的な問題だと思っています。」「これを直すには初期化することをおすすめしますが、いかがいたしましょうか?」 ぎゃーす!初期化だけはノープリーズ。ってことでともかく受け取りに。 受け取り自体はスムーズに終わったが

    hirose31
    hirose31 2008/02/23
    >追記:daemontoolsはMac OS Xではpollを無効にするような事をしなくてはならないらしいです(id:kazuhoさんありがとう!)。
  • Re: 結局どっち使えばええのん? - D-6 [相変わらず根無し]

  • Re: cache::memcached::fast とか ::XS とかとのベンチはどれくらい? - D-6 [相変わらず根無し]

    Re: cache::memcached::fast とか ::XS とかとのベンチはどれくらい? 追記:get()だけじゃなくてset()もベンチとってみた。Cache::Memcachedと比べてget()はざっくり6倍から9倍、set()は2倍から4倍速いみたい。 追記2:一番最後のset()ベンチだけは::Fastが速かった事に今更気づいた。レポート読み間違え。なんとなーーーく俺のベンチでは圧縮が行われてない気がする。誰か知ってたら教えてください。 id:miyagawaさんがLibMemcached.pmに関して「cache::memcached::fast とか ::XS とかとのベンチはどれくらい?」と言っていたので、やってみた。 ベンチ対象はCache::Memcached, Cache::Memcached::Fast,それにCache::Memcached::LibMe

  • Perl で'' と 1 == 0の区別の付け方。 - D-6 [相変わらず根無し]

    Perl で'' と 1 == 0の区別の付け方。 前のエントリの続き。 普通の文字列''と、s/foo/bar/、もしくは1 != 0の結果のようなbooleanを返した結果の違いを見る、ってことだが use B; sub SV_isPV { my $x = shift; my $flags = B::svref_2object(\$x)->FLAGS;; return (! ( $flags & 0x00010000 ) ) && ( $flags & 0x00040000 ); } これを通すと、区別が付く。 カテゴリ 開発 2007年12月 7日 18:18 D | ブログ記事のURL | コメント(0) | トラックバック(0) |

    hirose31
    hirose31 2007/12/07
    true false boolean
  • 1