タグ

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

  • q4m-balancer - D-6 [相変わらず根無し]

    q4m-balancer 2012年3月29日 11:22 D | ブログ記事のURL | コメント(0) | トラックバック(0) 至極簡単なハックなんだけど、q4m-balancerというスクリプト書いてみた。シナリオとしては、(1) q4mが複数あって、(2)それぞれに繋がってるワーカーの数・処理能力にバランスの不整合があって (3) キューの中身について処理順番等が関係ない、という状況においてq4mに入っているメッセージの数にかたよりが見られている状態をある程度改善するスクリプト。 入っているメッセージ数が最大のキューと最小のキューの差が 最大 > 最小 * 2 だった場合に最大のほうのキューの中身を40%最小のほうに移す、ってだけ。グラフを見れば分かるとおり、右側のほうにグラフの内容がイーブンになっているのが見えると思う。これを定期的に動かす事によって処理能力の高いワーカーのほう

    dann
    dann 2012/03/29
  • YAPC::Asia Tokyo 2011 振り返り - D-6 [相変わらず根無し]

    YAPC::Asia Tokyo 2011 振り返り 2011年10月16日 17:33 D | ブログ記事のURL | コメント(0) | トラックバック(0) YAPC::Asia Tokyo 2011の運営側の話は大分参加者側とは違うとは思いますが、一応記録として書いておきますね。あと以下様々な情報は私lestrratからみた一方的な話なのでひょっとしたら間違ってるかもしれませんが、その場合は随時ご指摘をお願い致します。 今年のYAPCの準備 ぶっちゃけ運営側、そして少なくとも僕の視点からは941さんとのタッグがあまりにもキレイに連携できてて、YAPCの準備は恐ろしいくらい負担の少ない感じでした。 最初から去年より責任機能を大幅に委譲しようというコンセンサスも取れてたし(例:懇親会手配、Tシャツ準備、プロジェクター等の備品準備等はDeNA/mixi社からの方達と分担しました)、去年

  • YAPC::Asia Tokyo 2011のシステム - D-6 [相変わらず根無し]

    YAPC::Asia Tokyo 2011のシステム 2011年10月16日 08:34 D | ブログ記事のURL | コメント(0) | トラックバック(0) YAPCの裏方で動いているシステム。dotCloud上で トーク用のインスタンス、チケット用のインスタンス、チェックイン用のインスタンス、そしてDBが走っております。 トーク用とチケット用を分けたのは、リリースのタイミングとかが全然違うので、別々に開発したから。面倒っていえば面倒だけど、開発のタイミングという意味ではやりやすかった。 チェックイン用のインスタンスはスタッフ向け。バーコードリーダーで「ぴっ」ってやられたと思うけど、バーコードリーダーはただのキーボードのような扱いになっているので、単純にフォームのテキストフィールドに所定のテキストを送って、あとはフォームで処理してるだけ。 これらのdotCloudでデプロイしているア

  • White Camel Awards 2011 - D-6 [相変わらず根無し]

    White Camel Awards 2011 2011年8月18日 10:51 D | ブログ記事のURL | コメント(0) | トラックバック(0) 昨日の夜、ビールの缶のプルトップをぷしゅっ!とあけてぐびぐびと一番うまい最初の一口を飲んで、ベッドの上からツイッターに発泡酒よかビールのほうがうまい、とか書いてたらtwitterで今年のWhite Camel Awardをもらったということを聞いた。ちなみに以前の受賞者には@miyagawaさんとかがいます。 人いないところでやるのはどうなのよ、とは思いつつも(まぁしょうがないっすよね!)、大変ありがたい話です。White Camel Awardが何か知らない人に説明すると、要はPerl技術とかそういうところでの貢献ではなくて、コミュニティであったりイベントであったりマーケティングとかそういうところでPerlに貢献した人を表彰してく

    dann
    dann 2011/08/18
    congrats!
  • YAPC::Asia 2011で話してくれッ! - D-6 [相変わらず根無し]

    YAPC::Asia 2011で話してくれッ! 2011年7月27日 16:37 D | ブログ記事のURL | コメント(0) | トラックバック(0) これは自分がYAPCの運営に関わっている人でなかったとしても言える:「カンファレンスで喋る(喋った経験のある)エンジニアはその後チャンスが広がる」。あとさらに言うと、カンファレンスで喋れないとか言ってる人はひとつ大事な事を見逃している。今喋っているあの人達だっていつかは初心者だったんだ。最初に必要なのはまず応募してみる勇気だ。みんなスタートラインは一緒! YAPC::Asia Tokyo 2006だか2007で俺は初めて人前で喋った。300人入る講堂の中で喋った。何をどう喋ったか覚えてないけど、俺は目立ちたかった。俺は俺という人間がPerlを使える人であることをアピールしたかった。俺はその後のキャリアで仕事に困りたくないから実績が欲しか

  • Brahman: a supervisor clone in Perl (under development) - D-6 [相変わらず根無し]

    Brahman: a supervisor clone in Perl (under development) 2011年6月13日 15:57 D | ブログ記事のURL | コメント(0) | トラックバック(0) 週末にsupervisorっていうものについて話してる人がいたので、特に理由なくPerlでクローンを書いてみようと思った。というわけで当に基の部分まで書いた。名前はBrahman。神様の名前にしたかったのはプロセスの生死を管理するから。 繰り返すけど、特に理由はない。書きたかったから。ちなみに内部的には多分家と全然互換性はない。設定ファイルがだいたいクローンできればいいや、というくらい。 今のところできることは、例えば今daemontoolsで管理してるplakupサーバーがあったとして、こんな感じの設定を書くと立ち上がってstdout/stderrを一緒のログに保存

    dann
    dann 2011/06/13
  • say no to system perl - システム標準Perlを使わないススメ - D-6 [相変わらず根無し]

    say no to system perl - システム標準Perlを使わないススメ 2011年4月30日 10:06 D | ブログ記事のURL | コメント(0) | トラックバック(0) LinuxMac OS Xを使っていれば、大抵の場合/usr/bin/perl などの位置にPerlが入っていますが・・・これらを使うのはやめたほうがいい、というのが段々定説になりつつあります。 厳密に言うと、別に簡単なスクリプトを書くのにシステム標準Perlを使うのは問題ないのだけれども、CPANからモジュールをインストールするつもりならシステム標準Perlを使わないほうがいいでしょう、という事ですね。 自分としてはシステムPerlを使わない理由はふたつある。 ひとつはシステムPerlはそれに依存するものがあるため、それに変更を加えると何かが壊れることがあること。例えばついうっかりモジュールのバ

  • 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とかを

    dann
    dann 2011/04/27
  • YAPC::Asia 2010 - Thank You! - D-6 [相変わらず根無し]

    YAPC::Asia 2010 - Thank You! 気づいたら 9/26からブログかいてねぇよ。忙しかったのだな・・・ というわけでYAPC::Asia Tokyo 2010もようやく終わりました。今さっきスピーカーの皆様にメールを書いたので、あとはいくつか支払いをすればだいたい終わりかなぁ、っていう感じです。 まずは来場していただいた皆様ありがとうございました。今回は「初心者の俺でもいいんだ」「Perl使いじゃないけど、いいんだ」と言ってくれる人が結構いたようで、大変嬉しい限りです。そうです、YAPCPerl好きのほうが楽しめますが、Perlが好きじゃなくても全然問題ありません。 前回2009ではブレーンが俺一人で、しかも開催二日前に39度の熱を出すというへたれっぷりを発揮して方々に迷惑をかけまくりましたが、今回は @941さんと業務を分けられたので大変助かった。今年は少なくとも

    dann
    dann 2010/10/20
    lestrrat++
  • slow query logとかをTest::mysqldで出す - D-6 [相変わらず根無し]

    slow query logとかをTest::mysqldで出す 以前ここで書いたTest::mysqldの仕組み、すこーしずつ毎回変えながら使ってる。今は継承はしてないが、まぁやってることはだいたい一緒。 で、テーブルのインデックスとか使ってるクエリとかを確認したいなーと思って、slow query logと general log をぼこっと出せるようにした。 if (! $ENV{ TEST_DSN }) { my %my_cnf = ( 'skip_networking' => '', ); if ( $ENV{SLOW_QUERY_LOG} ) { $my_cnf{ slow_query_log } = 1; $my_cnf{ slow_query_log_file } = $ENV{SLOW_QUERY_LOG}; $my_cnf{ long_query_time } = $

  • 自分の最近のCatalystのモデル部分の書き方 - D-6 [相変わらず根無し]

    自分の最近のCatalystのモデル部分の書き方 こちらのブログでなんか呼ばれた気がしたのでとりあえず書いてみた。 あくまで自分はどうしてるか、って話ですが、最近はCatalystでなんか書くときはこんな感じで使ってます。 色んな事がこの図に詰まっているので、箇条書きしてみる: Model::APIAPIオブジェクトを作成して、使用時にはModel::APIに対して`find()`というメソッドを使って実際のAPIオブジェクトを持ってくるSchema等はMyApp::Schemaに定義し、Model::APIのアトリビュートとして持っている。cacheも同等。これらの初期化引数は設定ファイルのModel::APIから取れるようにしておくCatalyst::Model::DBIC::Schemaは*使ってない*Model::APIではACCEPT_CONTEXTが呼ばれた時点で、もしまだ初

  • 近況 - D-6 [相変わらず根無し]

    近況 もうちょっと黙ってようと思ったんだけど、少しずつ色んな所から漏れちゃったのでばらすと・・・私が代表を務める 株式会社 endeworksは4月末を持って営業を事実上停止しました。 1月の日記では割と余裕な内容を書いてたんだけど、蓋を開けてみれば2010年度にアテにしていた仕事が諸々全部合わせて4000万円弱、全てキャンセルないしそもそも始まらなかったりして、万策尽きてしまった・・・という次第。 たいした負債もないし、社員を全部切るとか会社を続けるっていうだけだったら正直なんとかなったんだけど、まぁさすがにこれだけの額のキャンセルや、それに伴うドタバタで僕の心が折れてしまった、ということで被害がないうちに・・・と今回の運びになりました。 まぁ厳密にはまだもう少し銀行と話したりとか、オフィス機材の処理とかをしないといけないのだけど、とりあえず誰にも(不必要な)迷惑は掛けず負債も完済して全

    dann
    dann 2010/05/08
    お疲れ様です
  • 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;

  • AnyEventでの簡単なFIFOキューの作り方 - D-6 [相変わらず根無し]

    AnyEventでの簡単なFIFOキューの作り方 まぁ考えてみれば単純な話ですけど、いわゆるGuardを使うとよいです。参考はAnyEvent::HTTP コールバック$cbの最初の引数をguard変数にしておき、キューの1スロットを使用している間はこのguard変数をundefしないようにしておく感じです。 use strict; use AnyEvent; use AnyEvent::Util; my @q; # 実際にコールバックを入れておくところ my $ACTIVE = 0; # 現在の使用中スロット my $MAX_ACTIVE = 1; # 最大何個のコールバックを「同時」に行うか(もちろん当に同時じゃないよ!) sub drain_queue { while ( @q && $ACTIVE < $MAX_ACTIVE ) { if (my $cb = shift @q)

  • make bundle_local_lib - D-6 [相変わらず根無し]

    make bundle_local_lib 最近、miyagawaさんが書いたこちらののツールを多少改変したものを使ってlocal::lib環境にCatalystアプリの全依存関係を突っ込んでからデプロイ、ということをしていました。 が、このツール自体をコピペするのに疲れました。なのでApp::BundleDepsとModule::Install::Bundle::LocalLibというものを作りましたよ!M::I::Bundle::LocalLibのほうはMakefile.PLに1行だけ記述を入れておくとmake bundle_local_libと書くだけで./extlibにlocal::lib環境を作ってくれるというものです。 俺的には超便利! 想定している使い方はApp::BundleDepsのPOD(cpan github)を見てもらうのが一番よいかもしれません。 これを使うとCa

  • Fukuoka Perl Workshop #14 行ってきました - D-6 [相変わらず根無し]

    Fukuoka Perl Workshop #14 行ってきました 11/14、ようやく杉山さんとの去年?からの約束を果たすべく福岡に行って、Fukuoka Perl Workshop #14 に参加してきました。 都内でやっているイベントでは比較的最先端技術とかを話す人が多いですが、地方にいくと必ずと言っていいほど「実務的な話」のリクエストがあがります。今回もご多分に漏れずまっさきにそういうリクエストが出たので、JPAの肩書きで参加はしたものの、弊社endeworksの実例を出して色々どういう開発手法を採っているのかを話させていただきました。     http://users.endeworks.jp/~daisuke/presentations/fukuoka-pm/fukuoka_perl_workshop14.pdf 発表の時はJPAのロゴが入ったスライドだったんですが、内容がJP

    dann
    dann 2009/11/16
  • AnyEvent IRC bot: Morris - D-6 [相変わらず根無し]

    AnyEvent IRC bot: Morris http://github.com/lestrrat/Morris Moose + POEなIRCボット作ろうと前に思い立って、結構長いこと弊社内で使ってたんですが、このたびAnyEvent化して色々モダナイズしました。やっぱり非同期なhttp_getしてる部分とかは抜群に速いなぁ。 AnyEvent したついでにAnyEvent::MPにも対応したですよ。POE::IKCと違って、一旦セットアップしちゃえば、Morrisの外から何かをポストするのにコマンドラインから一発でできる; aemp morris privmsg "#channel" "Your comment" ただMPってセットアップが結構面倒くさいのね。以下はまったり考え込んだりしてしまったところ: 最初動かない時になにやってんんだかわからないので、PERL_ANYEVENT

    dann
    dann 2009/11/04
  • To Moose Or Not To Moose - D-6 [相変わらず根無し]

    To Moose Or Not To Moose I'm just going to wear my Japan Perl Association Head Director's hat for a bit and add a small, but what I consider to be something very important about the whole Moose or no Moose argument: "Moose Developers, please act like you care (more) about startup cost, use of RAM, and other efficiency issues." Here's what I mean by the above: I'm an engineer. I like Moose. I under

    dann
    dann 2009/09/04
    lestrrat++
  • LLTV 参加してきた - D-6 [相変わらず根無し]

    LLTV 参加してきた LLTVに参加してきました。「LLフィーリングカップル」でボケ殺し役と、LLTV生CMで唯一全く生じゃないCMを発表してきました。 フィーリングカップルは正直もう少しテーマを減らして深く突っ込みたかったなぁ。ともあれ、俺もいつかは子供できると思うので子供がいても今まで通り仕事できる会社にしていきたいです。 CMは番全日に竹迫先生より振られたのでうわーっと作業時間3時間あまりでKeynoteプレゼンテーションとして作成しました。一応動画版をアップしておきますが、このCMは権利関係が面倒くさいので来ついているはずのBGMが一緒についていません。CMを正しく楽しむためには(笑)一緒に布袋寅泰さんの「Battle Without Honor Or Humanity」を動画再生と同時に再生しはじめてくださいませ。 あと、一部スポンサーの方とか名前抜けてたらすみません。慌

    dann
    dann 2009/08/30
    keynoteでこんなことできるのかぁ。かっこよす。
  • 連載とかインタビューとか。 - D-6 [相変わらず根無し]

    連載とかインタビューとか。 ちょっとだけ時間が空いた。いまのうちにブログを書こう。 ここのところgihyo.jpさんのところでYAPC::Asia Tokyo 2009関連の連載をさせてもらってます。見所とか、関連性のあるセッションをまとめて紹介しているのでYAPCで何をみたらいいのか、なんていう方がいたら是非参考にしてください。 第一回第二回第三回第四回(最終回。8/28?掲載予定) あと、インタビューされて、その後どういう内容に編集されるのか僕は知らないんだけど明日あたりどうやらインタビューが@ITに載るらしいですよ。こちらはURLはまだ知らないけれども、こちらの特集の一貫として掲載される模様です。 ちなみに土曜日中野にいると僕と会うかもしれません。 2009年8月26日 14:56 D | ブログ記事のURL | コメント(0) | トラックバック(0) |