BLOGTIMES
«Prev || ... 1082 · 1083 · 1084 · 1085 · 1086 · 1087 · 1088 · 1089 · 1090 ·... | | Next»
2009/05/09

予期しない例外でRubyが落ちたときのログを取る

ruby 

最近、Rubyでバッチを書いているのですが、予期しないエラーでスクリプトが落ちるとスタックトレースがコンソールにだけ出力されてしまうという現象にちょっと頭を悩ませていました。自分だけがバッチを起動させるなら標準出力をファイルにリダイレクトしておけばいいのですが、自分がさわらないときにだけ落ちるという謎な挙動なのです。

ということで、Rubyの終了処理の部分に何かフックのようなものがないのかなと探してみたらRubyの終了処理のフックはいろいろ種類があるようです。

終了処理 - Rubyリファレンスマニュアル」より

 1. すべてのスレッドを Thread.kill
 2. Ruby の疑似シグナル SIGEXIT のハンドラが登録されていればそれを実行
 3. END ブロック(END { ... } または関数 at_exit で指定したブロック)が登録されていれば、 そのブロックを登録とは逆順に実行
 4. ObjectSpace.define_finalizer により、ファイナ ライザが登録されていればそれらを実行(順序不定)
 5. exit(3) により終了

今回のパターンであれば、2の疑似シグナル(SIGEXIT)に対するハンドラを登録するか、3のENDもしくはat_exitによるブロックを登録するかいずれかの方法が良さそうです。

[予期しない例外でRubyが落ちたときのログを取る の続きを読む]

    at 23:09 |
    2009/05/08

    JAWStatsを使って、AWStatsをWeb2.0ライクに

    webanalytics  php 
    JAWStats - JAWStatsを使って、AWStatsをWeb2.0ライクに

    先日仕掛けておいた過去ログ(50G)のインポートに結局2日くらいかかりました。マシンの性能が良くてもDNSのルックアップ速度にどうしても足を引っ張られますね。

    AWStatsはフリーのサーバログ型のアクセス分析システムとしては出力されるレポートがそこそこ詳細なので気に入っているのですが、GoogleAnalyticsとかOmnitureなどの比較的最近登場したビーコン型のアクセス解析と比べるとだいぶインタフェイスがWeb1.0的です。そんなAWStatsの見た目をWeb2.0ライクにしてくれるJAWStatsというソフトを見つけました。

    JAWStats Web Site Statistics & Analytics | An AWStats Companion

    JAWStats is a free, open-source website statistics and analytics package. It runs in conjunction with AWStats and produces clear and informative charts, graphs and tables about your website visitors.

    JAWStatsはPHPで書かれており、AWStatsのファイルを直接読み込んでjQueryを使ってきれいに表示をしてくれるフロントエンドです。実際に導入してみると同じAWStatsのデータを表示しているとは思えません。AWStatsを使っていて、ウェブの見た目がちょっと・・・・という場合には導入して見る価値アリです。


      at 22:58 |
      2009/05/07

      しりとりを科学する?


      しりとりを少し日本語処理ライクに考えたエントリがめっつぉさんで紹介されていたのですが、これがなかなか面白いです。

      「しりとり」の戦いかた、すこし反省した - Active Galactic : 11次元と自然科学と拷問的日常

      表の[A/B]を見てわかるように、「る」は格別の強さを誇っている。*2「る」でおわる単語は平均値とほぼ同じなので攻撃しやすいが、「る」ではじまる単語はその1割強しかないため守る側は非常に苦労する。しりとりのために生まれてきた文字だ。

      自分はあまり攻略法とか考えた事がありませんでしたが、しりとりするとばっかり言ってくる人がたまにいるのはそういう事だったのか。その疑問が氷解しただけで十分です。この歳になると友達としりとりするというよりは小さな子供の相手をする場合が多いので、あまり本気で勝ちにいく必要がないですからね。

      [しりとりを科学する? の続きを読む]

        at 23:01 |
        2009/05/06

        実家に空き巣が入りました


        現場検証 - 実家に空き巣が入りました

        「ばあちゃんちに泥棒がはいったみたいだ」という一言でたたき起こされました。どうやら祖母がなくなってから夜は無人になっている実家に空き巣が入ってしまったようです。明治時代から家はこの場所にありますが、場所が悪いのか、これで少なくとも3回目の空き巣被害ということになります。

        駆けつけてみると、ちょうど祖母の寝室だった部屋のガラスが割られており、室内はそれほど荒らされてはいないものの、戸棚や机の引き出し、仏壇の引き出し、額縁の裏、たんすの引き違い戸の中にある引き出し、掛け軸の裏というヘソクリの隠し場所の定番と呼ばれる場所を物色していった跡が残っていましたが、そもそもほとんどの引き出しの中身は空だったので不幸中の幸いながら被害は割られたガラス一枚だけでした

        [実家に空き巣が入りました の続きを読む]

          at 07:21 |
          2009/05/05

          Jcodeで文字コード変換をしようとすると落ちる

          perl  charset 

          3月末にサーバを移行してからAWStatsの再設定をしていなかったので、AWStatsを再設定しました。ついでに2005年分からのログを再処理しようと思ったのですが、なぜかログの前処理のutf8_decode.plが下記のようなエラーを吐いて落ちるので困ってしまいました。

          UTF-16BE:Malformed HI surrogate dee8 at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Encode.pm line 193, <STDIN> line 618012.

          該当するコードは下記の部分のようです。

          Jcode::convert(\$_,'utf8');

          どうやらJcodeが文字変換の際にEncodeを呼び出すようなのですが、ここでおかしな文字が入っているとPerlが死んでしまうようです。同じような問題ではまっている人を見つけたので、あまり本質的な解決方法ではありませんが、eval{ };でくくって誤魔化してしまいました。

          参考
           ・Jcode.pmが死ぬ : ひろ式めもちょう

          しかたないのでevalで囲った。

            at 03:23 |
            2009/05/04

            焼肉キング 名取店

            焼肉  miyagi 
            焼肉キング - 焼肉キング 名取店

            いつの間にか食べ放題になっていた焼肉キングでディナー。
            安く焼肉食べたい!という場合には結構使えますね。

            [焼肉キング 名取店 の続きを読む]

              at 18:04 |

              実家で休養


               - 実家で休養 - 実家で休養

                at 15:53 |
                2009/05/03

                FiddlerでHTTPのトラフィックをモニタする


                かなり前にAjaxのデバッグはFireBugが無かったときはFiddlerでHTTPをモニタしてやっていたという話を聞いていたのですが、これまで時間が無くて試す機会がありませんでした。ちょうど連休でその話をふと思い出したので、ちょっと試してみました。

                Fiddler Web Debugger - A free web debugging tool

                Fiddler is a Web Debugging Proxy which logs all HTTP(S) traffic between your computer and the Internet. Fiddler allows you to inspect all HTTP(S) traffic, set breakpoints, and

                このFiddler2はProxyとしてHTTPのアクセスをモニタし、内容を記録したり、ブレークポイントを設定してあるリクエストが来た際にはそこで内容を確認したり、通信内容を書き換えてからサーバに送信したりすることができます。

                普段お世話になることはあまりないかもしれませんが、Ajaxのようなもの以外でも、HTTPでシステム連携をするようなプログラムを開発している場合にHTTPのリクエストがどうなっているかという事を調べてデバッグするというときには重宝しそうです。


                  at 22:21 |
                  2009/05/02

                  プログラミングエディタのフォントは何にする?

                  font 

                  エンジニアがプログラミング時にどんなフォントを使うのかというのは、どんなエディタを使うのかというのと同じくらい宗教的な話です。結論としては自分が使いたいフォントを使えばいいと思いますが、お勧めのフォントがあると言われると気になるというのもまたエンジニアの本性だと思います。

                  プログラミングに適したフォント10 | エンタープライズ | マイコミジャーナル

                  プログラマはエディタ選びに熱中することがある。またエディタで使うフォント選びに熱中することもある。大抵の場合は文字の判別がつけやすいかどうか、インデントがみやすいかどうかを重視するため等幅フォントが採用されることが多い。しかし一度に多くの文字を閲覧できるという理由でプロポーショナルなフォントを選択することもある。

                  昔も書きましたが、Macからコンピューターに入ったのでプログラミングには今でも使い慣れたOsaka-等幅を使っています。基本的なクライテリアとしては、I(アイ)、l(エル)、1(いち)やO(オー)、0(ゼロ)の区別がつきやすいかどうか、日本語を持っているかに尽きると思ってるので、自分はOsaka-等幅が使えるうちはずっとそのままなんだろうと思います。


                    at 09:02 |
                    2009/05/01

                    定額給付金の申請書が届いた


                    定額給付金申請書 - 定額給付金の申請書が届いた

                    他の地区で既に届いているところも多いときいているのですが、僕のところにも定額給付金の申請書が今日やっと届きました。
                    もう5月ですから、おそらく文京区はかなり遅い部類ですよね。

                    忘れないうちにさっさとキャッシュカードのコピーを取って返信しておこうと思います。


                      at 23:48 |
                      «Prev || ... 1082 · 1083 · 1084 · 1085 · 1086 · 1087 · 1088 · 1089 · 1090 ·... | | Next»