2011-06-01から1ヶ月間の記事一覧

『心理学の「現在がわかる」ブックガイド』がいい感じ

『心理学の「現在がわかる」ブックガイド』は5人の心理学者による120冊以上の書籍のレビューである。この本は私の大学時代の恩師二人が監修&共著ということで買ってみたが、かなり面白い。扱っている本はメジャーなものが多く、私が読んだことのある本も十…

Released FurlX::Coro!

Coroを使うと簡単にFurlで並列HTTP通信が出来ます。 #!perl # usage: http-ping.pl [urls...] use strict; use warnings; use Coro; use Coro::Select; # Furlよりも先にロードすること! use Furl; my @coros; foreach my $url(@ARGV) { push @coros, async…

Web+DB Press vol.63の見所

同期に向けたエントリです。今月のWeb+DB PressはDeNAのエンジニアである[twitter:@xaicron]さんが寄稿しているのでオススメです。 Web+DB PRESS vol.63 の Perl Hackers Hub に寄稿しました - Technology of DeNA WEB+DB PRESS Vol.63作者: 竹迫良範,和田卓…

Perlのメモリリークを見つける方法

Perlではメモリリーク検出ツールがいくつか開発されているので、top(1)の結果を眺めるよりそういうツールを使うほうが楽である。 さて、メモリリークが発生しているとき、その可能性としてはだいたい以下の4つが挙げられる。 Perlレベルでの循環参照 グロー…

CapsLockキーをControlキーにしたら予想以上に楽になった件

いままでキー配列のカスタマイズにあまり興味がなく基本的にデフォルトのままのキー配列に慣れるようにしてきた。キー配列のカスタマイズをすると何かの折にカスタマイズされていないPCを使うときに非常に不便だからである。しかし最近は左手の小指周辺が慢…

Xslate 1.3000 リリースメモ

Xslate 1.3000でhtml_builder()に非互換な変更を行いました。 html_builder()で作成したフィルタは、いままではunmark_raw()で型情報を落とした引数を受け取っていました。しかし1.3000からは引数をそのまま受け取るようになります。これによりフィルタが全…

[PSGI]psgi.errorsって本当に必要なの?という話

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

each()は遅い上に微妙な問題も起きやすい

特別な条件がないかぎり、each()は使うべきではありません。代わりにkeys()/values()を使うべきです。その理由は2つあります。 each()は遅い each()でハッシュ全体をループするのは遅いです。これは、keys()/values()がその内部の値をそのまま参照する*1のに…

perlbrewとPERL5LIBの相性は悪い

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…