Hatena::ブログ(Diary)

にっきちょう

Sunday, February 11, 2007

Object::Deadly

使えたらCarp::Clanが読み込むんだけど、ppmからインストールしようとするとインストール成功の表示のまま固まる。Ctrl+Cでプロセスを殺さないといけなくなっちゃいます。とりあえず必須じゃないから依存しないようにして回避。

追記 (02/16 23:36)

id:charsbarさんがブクマで「どこのリポジトリ?」とコメントしてるのでちょっと追記。えと、これはCPANから落としてきて自分でppmパッケージ/リポジトリを作ってるので、どこのでもないです。最近は、DBICとかTT2とか自力でテストを通せなかったときにtcoolなりtheoryx5なりactivestateに頼ってるので。

で、もう少し確認してみる。まずは手元の環境。

OSWinXP Home SP2
PerlActivePerl 5.8.8 build817
PPM3.4
makeVC++6付属nmake 6.00.9782.0

次にObject::Deadly 0.09の依存

  • Carp::Clan 5.4
  • Devel::StackTrace
  • Devel::Symdump
  • Scalar::Util

実際にインストールされてるバージョンはそれぞれ、

Carp::Clan5.8
Devel::StackTrace1.13
Devel::Symdump2.07
Scalar::Util1.18

で、再現条件は、Object::Deadlyをインストールすること。で、ごめんなさい。最初に書いてあることは不正確です。Object::Deadlyをインストールするときに、依存してるDevel::StackTraceを先にインストールするんだけど、それをインストールするときにSuccessfully installed...で固まります。Devel::StackTrace単体だと発現しませsん。で、Object::Deadly単体で*1インストールすると、これも発現しません。Carp::Clan単体でも発現しないので、Devel::StackTraceのほうが怪しいかも。ん、けどtcoolから落としてきたDevel::StackTraceアーカイブでも同じ条件で発現するから、むしろppmのほうが怪しいか?

ていうかcharsbarさん、Jiftyの記事書いてたりして、すごいPerl Hackerなのによくこんなところの記事までチェックしてるなぁとか思ったり。流石だなぁ。精進精進。

Plagger

導入してみた。テストを通せるものは全部自力で、通せないものはid:charsbarさんが公開してくれているIndex of /からダウンロードローカルリポジトリ立ててるので、これでCatalystDBIx::ClassPlaggerはネットにつながってなくてもすぐに使えたりしてちょっと幸せ。とりあえず桜庭一樹の日記*2だけ書いてみた。あそこRSS吐いてないからアンテナで更新チェックしてるんだよね。定期的に実行させたいので、CRONw*3インストール。そのうち他のblogフィード全文配信してないところは全部Plaggerに任せるようにしていこうと思います。やっぱり楽したいしね。クリック1回の手間を惜しんでYAML書いたりするのがPerlishです。

SHA256を64進数にする

via.qune: プログラミングメモ - SHA256 の出力を64進数にする

面白いけど、UNIXとかのcase sensitiveファイルシステムじゃないと使えないから、case insensitiveWindows環境でもこういうことをやるにはどうしたらいいかなとか。簡単なのはアルファベット+数字で36進数にするのがシンプルだけど、どう考えても中途半端。やっぱり2**N進数じゃないと。面倒だし。となると、少し減らして32進数にするのがいい感じ。0と1はフォントにもよるけど、それぞれ大文字にしたときのOとIと区別がしづらいことがあるから飛ばして、[A-Z2-7]の32文字。case insensitiveなら、全部大文字にするか全部小文字にするか。どちらにしても普通は大文字と小文字の混在を考えなくていいから、大文字Iと小文字lは考えなくていいや。case sensitiveならこのあたりも一応考えておきたいところ。コードを載せたいところだけど、面倒だしとりあえずは使い道もないから却下。もし必要になったらそのときに書いてみればいいや。

追記 (02/16 01:10)

ちょっと思い出したら、これって本当にそのまんまBase32だよね。確認したらRFC 4648で定義されてる。

さすがに

EmEditorでも15.2MB、72000行に及ぶテキストから正規表現で逆方向に検索すると重いなぁ。順方向の検索は軽いけど。

通しテスト完了

通しでのテストもきちんと通りました。1ヶ所だけスキーマのテーブル名が間違っていて少しはまったけど、それ以外はとくに問題もなく。ためしに6件データを登録。このまま全データを登録してしまいたいところだけど、それをやると多分25000件くらい登録しないといけなくなるので、適当に100件くらい抽出して登録しておいて、次はMVCのVとCに手を入れていこうかな。

*1:-nofollowオプション付きで

*2Error 403 Forbidden

*3Windowsでcronみたいに使えるPerlスクリプトperl.exeをサービスに登録してる。CRONw - CRON for Windows