タグ

2011年12月5日のブックマーク (10件)

  • 続DBIとforkの関係 - Articles Advent Calendar 2011 Dbix

    はじめに DBIxといえばSkinnyです。nihenです。 DBIxトラックといいながらDBIの話でもよいみたいなのでに書いたことの続編tipsを一つ書きますです。 DBI->connect_cachedとforkの罠 DBI->connect_cachedは同一プロセスで生成された同一connectオプションのデータベースハンドルをキャッシュしてくれそれを返してくれる便利なものなのですが、これとforkの組み合わせにはやはり罠が存在します。 use strict; use warnings; use DBI; use Data::Dumper; my $dbh = DBI->connect_cached('dbi:mysql:sandbox', 'sandbox', 'sandbox') or die $DBI::errstr; $dbh->do(q{DROP TABLE IF EXI

    続DBIとforkの関係 - Articles Advent Calendar 2011 Dbix
  • クライアントサイドJSでもサーバーサイドJSでもうごくテストを書く - Articles Advent Calendar 2011 Amon2

    こんにちは! tokuhirom です。日曜日ですね! 今日は Test トラックにかこうとしたけど Perl 関係なさすぎて自重したネタをかこうかとおもいます。 さて、Amon2 の重要なパーツといえる strftime.js ですが、こちらもちゃんとテストしなくてはなりません。strftime とかいちばんテストしやすいうえにバグりやすいのに、テストしてないライブラリがおおくてなさけなくなる今日この頃ですからね。 テストライブラリの選定 さて、Perl ならば Test::More をとりあえずつかっておけばいいのですが、JS の場合はどれをつかうべきかなやむところです。JS の場合、いろんな人がオレオレなテストフレームワークをだしててややこしいことこの上ありません。 こういう場合、Perl でも JavaScript でもライブラリの選定方法はかわりません。譲れない機能、ライブラリの

    クライアントサイドJSでもサーバーサイドJSでもうごくテストを書く - Articles Advent Calendar 2011 Amon2
  • ぼくのかんがえた最強のテスト分類 - Articles Advent Calendar 2011 Test

    はじめに こんにちは!最近転職して新宿までロマンスカーにお世話になりっぱなしの ikasam_a です。 Test Track 3日目です!初日に xaicron さんから「テストの細かい話を書いて!」と言われたので、今日はちょっと趣向を変えて、テストの分類についてつらつらと書いてみたいと思います。 あまり、というかまったく Perl の話は出てこないです!さーせん! テストを分類すると捗るぞ 例えばチームでテストの話をするような時に、それぞれが考える「テスト」のイメージが違って、話が噛み合わないことがあったりしますよね。僕はよくありました。 僕は「テスト=単体テスト」の話をしているつもりが、相手は「テスト=機能テスト」だと思って話を進めていると、あれ?という場面があったりします。こういうときは、例えば設計におけるデザインパターンのように、テストをより具体的にした共通認識があると話が捗りま

    ぼくのかんがえた最強のテスト分類 - Articles Advent Calendar 2011 Test
    kamipo
    kamipo 2011/12/05
  • Treasure Data Blog • Real-Time Log Collection with Fluentd and MongoDB

    Tweet About This post shows how to use Fluentd-MongoDB plugin to aggregate semi-structured logs in real-time. Background Fluentd is an advanced open-source log collector developed at Treasure Data, Inc (see previous post). Because Fluentd handles logs as semi-structured data streams, the ideal database should have strong support for semi-structured data. There are several databases that meet this

  • PHP の「エラー処理ハンドラ」「シャットダウンハンドラ」「例外処理ハンドラ」の挙動

    error_reporting 関数に上記の定数を渡すことで、どのレベルのエラーをレポートすべきか PHP に指示することができます。 全てのエラーをレポートするには、E_ALL を指定します。PHP4 と PHP5 では既定では E_ALL & ~E_NOTICE が指定されます。 エラーハンドラの指定 エラーハンドラは、set_error_handler 関数で指定します。 次の例では $i = 5/0; の行で 0 除算の警告が発生しますが、その箇所でユーザー定義の エラーハンドラである my_error_handler 関数が呼ばれます。 <?php set_error_handler( 'my_error_handler', E_ALL ); $i = 5/0; function my_error_handler ( $errno, $errstr, $errfile, $err

    PHP の「エラー処理ハンドラ」「シャットダウンハンドラ」「例外処理ハンドラ」の挙動
    kamipo
    kamipo 2011/12/05
  • PHPのset_erorr_handlerとregister_shutdown_functionとob関数について ( エラーを整形出力したい ) ::ハブろぐ

    いきなり今回のまとめ 例によって地味なPHP記事です。最初に今回で分かったことのまとめ。 処理が続行可能なエラーはset_error_handlerで捕捉できる Fatal Errorはset_error_handlerでは捕捉できない Fatal Errorはregister_shutdown_functionで捕捉できる shutdown処理の中に、ob関数(output buffering)があると、Fatal Errorの出力より先にshutdown処理が実行される shutdown処理の中では、debug_backtraceは使えない 今回は、タイトルにもある通り、エラーを整形して最後に出力したいというのが当初のメインテーマです。それを実装する中で、上のようなことがわかりましたので、それらについて以下で書いていきます。 追記 ( 2011-04-06 ) こしあんさんがコードとし

    PHPのset_erorr_handlerとregister_shutdown_functionとob関数について ( エラーを整形出力したい ) ::ハブろぐ
    kamipo
    kamipo 2011/12/05
  • phpのregister_shutdown_function()で登録するシャットダウン関数と、グローバルスコープ上のオブジェクトの__destruct()の優先順位 - kanonji’s diary

    デストラクタの方を先に実行してほしかったのですが、どうもシャットダウン関数が先に実行されているようです。 公式ドキュメントのコメントで、簡単な例を提示してくれているのを見つけたので、今後の為にも記録しておきます。 デストラクタを持つオブジェクトがローカル変数にnewされてたり、意図的にunset()すれば、シャットダウン関数より先にデストラクタを実行させる事もできるみたいです。 i have written a quick example about the order of destructors and shutdown functions in php 5.2.1: <?php class destruction { var $name; function destruction($name) { $this->name = $name; register_shutdown_func

    phpのregister_shutdown_function()で登録するシャットダウン関数と、グローバルスコープ上のオブジェクトの__destruct()の優先順位 - kanonji’s diary
    kamipo
    kamipo 2011/12/05
  • 第10回 ジョブキューで後回し大作戦―TheSchwartz、Qudo、Q4M(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはnekokakさんこと小林篤さんで、テーマは「ジョブキューで後回し大作戦」です。 ジョブキューとは 一時代前は時間のかかる処理もすべてWebアプリケーションで行っていましたが、最近ではいろいろな部分で処理の非同期化が行われるようになってきました。たとえばWebのインタフェース側ではAjaxがその最たるものでしょう。アプリケーションのバックグラウンド側でも今回のテーマであるジョブキューと呼ばれるしくみが多く利用されるようになりました。ジョブキューを賢く上手に利用することで、ユーザにストレスを与えることなく、またサーバのリソースも有効に使えるようになります。 ジョブキューは延々と動き続けるバッチ処理、というイメージが最もわかりやすいでしょう。通常のバッチ処理であればcrondを利用し、一定周期でプログラムを起動して

    第10回 ジョブキューで後回し大作戦―TheSchwartz、Qudo、Q4M(1) | gihyo.jp
    kamipo
    kamipo 2011/12/05
  • YAGNI - Wikipedia

    英: You ain't gonna need it[1]、縮めて YAGNI とは、機能は実際に必要となるまでは追加しないのがよいとする、エクストリーム・プログラミングにおける原則である。 YAGNI原則を提唱する人々は、その理由として以下を挙げている。 後で使うだろうという予測の元に作ったものは、実際には10%程度しか使われない。したがって、それに費やした時間の90%は無駄になる[2]。 余計な機能があると、仕事が遅くなり、リソースを浪費する[2]。 予期しない変更に対しては、設計を単純にすることが備えとなる。そして、必要以上の機能を追加すると、設計が複雑になってしまう[2]。 人生の時間は、貴重である。したがって、人間の能力は、ただコードを書くためではなく、現実の問題に集中するために使うべきである[3]。 結局は、その機能は必要ないかもしれない。もしそうなったら、あなたがその機能を実

    kamipo
    kamipo 2011/12/05
  • 良い相続人であるために - 世界線航跡蔵

    翔泳社の「君のために選んだ1冊 ソフトウェア開発の名著」という企画に寄稿を依頼されて、以下のような文章を書いた。ブログ等で公開して良いとのことだったのでここに公開したいと思う。 この企画は他の人の分を読むのが楽しみだ。早くができあがらないかな。 ちなみに「 きっと何者にもなれないお前たちに告げる 一冊」というタイトルを最初に思いついたけれど、長く読み継がれるであってほしいという企画の趣旨を鑑みて流行のネタを使うのは避けた。 yuguiがレガシーコードに絶望した人に贈りたい一冊 - 『レガシーコード改善ガイド』 レガシーコード改善ガイド (Object Oriented SELECTION) 作者: マイケル・C・フェザーズ,ウルシステムズ株式会社,平澤章,越智典子,稲葉信之,田村友彦,小堀真義出版社/メーカー: 翔泳社発売日: 2009/07/14メディア: 大型購入: 45人 クリ

    良い相続人であるために - 世界線航跡蔵
    kamipo
    kamipo 2011/12/05