- blogs:
- cles::blog
予期しない例外で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が落ちたときのログを取る の続きを読む]
JAWStatsを使って、AWStatsをWeb2.0ライクに
webanalytics
php 先日仕掛けておいた過去ログ(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を使っていて、ウェブの見た目がちょっと・・・・という場合には導入して見る価値アリです。
しりとりを科学する?
しりとりを少し日本語処理ライクに考えたエントリがめっつぉさんで紹介されていたのですが、これがなかなか面白いです。
「しりとり」の戦いかた、すこし反省した - Active Galactic : 11次元と自然科学と拷問的日常
表の[A/B]を見てわかるように、「る」は格別の強さを誇っている。*2「る」でおわる単語は平均値とほぼ同じなので攻撃しやすいが、「る」ではじまる単語はその1割強しかないため守る側は非常に苦労する。しりとりのために生まれてきた文字だ。
自分はあまり攻略法とか考えた事がありませんでしたが、しりとりするとるばっかり言ってくる人がたまにいるのはそういう事だったのか。その疑問が氷解しただけで十分です。この歳になると友達としりとりするというよりは小さな子供の相手をする場合が多いので、あまり本気で勝ちにいく必要がないですからね。
[しりとりを科学する? の続きを読む]
実家に空き巣が入りました
「ばあちゃんちに泥棒がはいったみたいだ」という一言でたたき起こされました。どうやら祖母がなくなってから夜は無人になっている実家に空き巣が入ってしまったようです。明治時代から家はこの場所にありますが、場所が悪いのか、これで少なくとも3回目の空き巣被害ということになります。
駆けつけてみると、ちょうど祖母の寝室だった部屋のガラスが割られており、室内はそれほど荒らされてはいないものの、戸棚や机の引き出し、仏壇の引き出し、額縁の裏、たんすの引き違い戸の中にある引き出し、掛け軸の裏というヘソクリの隠し場所の定番と呼ばれる場所を物色していった跡が残っていましたが、そもそもほとんどの引き出しの中身は空だったので不幸中の幸いながら被害は割られたガラス一枚だけでした。
[実家に空き巣が入りました の続きを読む]
Jcodeで文字コード変換をしようとすると落ちる
perl
charset 3月末にサーバを移行してからAWStatsの再設定をしていなかったので、AWStatsを再設定しました。ついでに2005年分からのログを再処理しようと思ったのですが、なぜかログの前処理のutf8_decode.plが下記のようなエラーを吐いて落ちるので困ってしまいました。
該当するコードは下記の部分のようです。
どうやらJcodeが文字変換の際にEncodeを呼び出すようなのですが、ここでおかしな文字が入っているとPerlが死んでしまうようです。同じような問題ではまっている人を見つけたので、あまり本質的な解決方法ではありませんが、eval{ };でくくって誤魔化してしまいました。
† 参考
・Jcode.pmが死ぬ : ひろ式めもちょう
しかたないのでevalで囲った。
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のリクエストがどうなっているかという事を調べてデバッグするというときには重宝しそうです。
プログラミングエディタのフォントは何にする?
font エンジニアがプログラミング時にどんなフォントを使うのかというのは、どんなエディタを使うのかというのと同じくらい宗教的な話です。結論としては自分が使いたいフォントを使えばいいと思いますが、お勧めのフォントがあると言われると気になるというのもまたエンジニアの本性だと思います。
プログラミングに適したフォント10 | エンタープライズ | マイコミジャーナル
プログラマはエディタ選びに熱中することがある。またエディタで使うフォント選びに熱中することもある。大抵の場合は文字の判別がつけやすいかどうか、インデントがみやすいかどうかを重視するため等幅フォントが採用されることが多い。しかし一度に多くの文字を閲覧できるという理由でプロポーショナルなフォントを選択することもある。
昔も書きましたが、Macからコンピューターに入ったのでプログラミングには今でも使い慣れたOsaka-等幅を使っています。基本的なクライテリアとしては、I(アイ)、l(エル)、1(いち)やO(オー)、0(ゼロ)の区別がつきやすいかどうか、日本語を持っているかに尽きると思ってるので、自分はOsaka-等幅が使えるうちはずっとそのままなんだろうと思います。
定額給付金の申請書が届いた
他の地区で既に届いているところも多いときいているのですが、僕のところにも定額給付金の申請書が今日やっと届きました。
もう5月ですから、おそらく文京区はかなり遅い部類ですよね。
忘れないうちにさっさとキャッシュカードのコピーを取って返信しておこうと思います。
- 換気口に風よけカバーを設置 (2)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(1433)
3 . シャープの空気清浄加湿器のキュルキュル音対策は PTFE テープで(1306)
4 . GitHub が全ての公開リポジトリへのシークレットスキャンを有効に(1158)
5 . 年次の人間ドックへ(1113)
Academic[574]
Book[155]
Diary[522]
Disaster[101]
Foodlogue[1425]
Game[284]
Goods[805]
Healthcare[341]
Hobby[32]
IT[1195]
Military[343]
misc.[1570]
Mobile[510]
Music[38]
Neta[106]
News[95]
Photo[391]
RealEstate[120]
Security[1178]
SEO Contest[36]
Software[634]
Tips[1886]
Travelogue[1238]
Web[675]
Work[193]
