はてなタッチテスト
書けるかな?
Perl Quiz
ネタをふられたので回答
http://d.hatena.ne.jp/hirafoo/20100319/1269007390
問題は以下参照
http://quill.to/yoshiki/0a66f62e14
びみょーなかんじだけど
再起の場合
$key =~/\./ ? foo($a_ref->{$`}, $', $value) : ($a_ref->{$key} = $value);
evalの場合
$key=~s/\./}->{/g ? eval"\$a_ref->{$key} = $value" : ($a_ref->{$key} = $value);
ーー追記ーー
暗号といわれたので長い変数版
再起の場合
use English; # use のところに書いてください $key =~/\./ ? foo($a_ref->{$PREMATCH}, $POSTMATCH, $value) : ($a_ref->{$key} = $value);
引越し手続き
一括で手続きできるサービス発見!
引越しコンシェルジェ
http://www.tepore.com/hikkoshi/renraku/
引越しの事務手続きってかなり面倒くさいので手続き代行のサービス作りたいけど、個人でできないからなーと思っていたんですよね。
が、NTTやら銀行やらクレジットカードやら携帯電話やら対応してないもの多すぎ。
対応しているところは既に自力で手続きした後だったorz
今後に期待!
heartbeat
イマイチ理解が足りてない。。。
terminfo & ncurseのバージョンあげた
cygwinで追加のパッケージ入れようとしたら、terminfoとncurseのバージョンあがってた。
おかげでterminfoのディレクトリ構造が変わり、zshやvimの挙動が悲惨な感じになった。
zshが補完のたびにプロンプトが崩れていくのは作業する気力がなえていく。。。
解決策
~/.terminfoに必要なファイルを配置する
また使うかも知れないので以下の感じでコマンド登録しといた。
make_terminfo () { for CHAR in `find /usr/share/terminfo -type f | xargs -n 1 basename | perl -le '%hash; while(<>){/^(.)/; $hash{$1}=1;} print join("\n",keys %hash)'` do mkdir -p ~/.terminfo/$CHAR find /usr/share/terminfo -type f -name "$CHAR*" -exec cp {} ~/.terminfo/$CHAR \; done }
WWW::Mechanize + Proxy 認証
某サイトからデータ引っ張ってくるためにWWW::MechanizeとWeb::Scraperでコーディングした。
Mech + Proxy認証でハマったところ。。。
clone
my $mech_clone = $mech->clone
上記でcloneを作成すると、Proxyの設定はしてくれない。
そのため、元々のオブジェクトにおいてproxyメソッドでproxyを設定した場合は、プロキシを利用しない。
また、環境変数を設定しておきnewでenv_proxyを呼ばせて自動設定させた場合は、proxy認証部分(http://foo:bar@proxyhost:proxyportのfoo:bar部分)にアクセスしようとする。
実際の動作としては、$mech->{handlers}->{request_preprepare}にLWP::UserAgent::Proxyオブジェクトが入らない。
これは、$mech->cloneではLWP::UserAgentのcloneメソッドを利用している(下記参照)のでLWPのバグor仕様っぽい。
use base 'LWP::UserAgent'; --snip-- sub clone { my $self = shift; my $clone = $self->SUPER::clone(); $clone->cookie_jar( $self->cookie_jar ); return $clone; }
cloneするのにいちいちproxyを設定しなおすのも嫌なのでmechがproxyを持っていたら再度設定するように書き直した。
こんな感じ。
sub mech_fixup { package WWW::Mechanize; no warnings 'redefine'; *clone = sub { my $self = shift; my $clone = $self->SUPER::clone(); $clone->cookie_jar( $self->cookie_jar ); if(exists $self->{proxy}){ while(my ($k, $v) = each %{$self->{proxy}}){ $clone->proxy([$k],$v); } } return $clone; } }
Web::Scraperのドキュメント
Podが充実してないので若干使いにくい。
ぐぐれば山ほど出てくるし、ソース読めばいいとはいえPod充実させてほしいなぁ