2006-07-01から1ヶ月間の記事一覧

DBIC の初期化速度改善(by Algorithm::C3 0.02)

DBIC のスキーマをたくさん(20数個かな)定義したモジュールを use しただけの単純なスクリプトに DProf によるプロファイラをかけてみました。Algorithm::C3 0.01 時代のプロファイリングがこれ。 Total Elapsed Time = 9.335981 Seconds User+System Time…

Algorithm::C3 0.02 登場

0.02 Sun. Jul. 30, 2006 - code refactored for speed by Brandon L. Black ま,まじっすか?Algorithm::C3 とはいうまでもなく Class::C3 の根幹を支えるモジュール。ということは DBIC の初期化も…wktk!

なんかドンドンいってる

そっか,今日はゲド戦記隅田川花火大会でした。個人的に評価は低いです。っていろいろ書こうと思ったら帰社時間になってしいました。

autocomplete と Firefox「戻る」で入力内容が消える,の絡み

基本的には Cache-Control 等でキャッシュ不可に「しない」場合,ブラウザの「戻る」ボタンで戻ってもフォームの入力内容は残っています。でもテスト環境でテストしていて Firefox 1.5 で戻ったら内容が消えてて,あれれ?となりました。IE で確認したらちゃ…

Samba-3.0.23a で ads と unix group 問題解決

Samba 3.0.23 で ads と unix group がうまくいかない - daily dayflower で困った,共有ディレクトリにアクセスできなくなってしまった,と書きましたが,3.0.23a がリリースされて直ったみたいです。Fedora のレポジトリでも更新されました。良くも悪くも …

Apache 2.2 の internal dummy connection の謎

ab でパフォーマンステストを行っていたんですが,ログに GET / HTTP/1.0" 200 643 "-" "Apache/2.2 (internal dummy connection)みたいなのがたまに出現してました。prefork mpm を使っているんですが, MaxRequestsPerChild でプロセスが再生成されるあた…

PostgreSQL での副問い合わせ等々

少なくとも ver. 7 の世代では IN を使った副問い合わせは遅いので EXISTS を使うべし http://www.stackasterisk.jp/tech/dataBase/postgresTuning02_02.jsp http://itbtech.itboost.co.jp/inst/inst_33.php EXISTS 等集約関数について http://www.postgresq…

DBIC 遅い

DBIC のプラグイン機構は Class::C3 が使われています。これは何をするものかというと,多重継承したクラスでのメソッドの呼び出し順序を Perl 標準のではなくわりとメジャーな順序にするという…って自分でも何をいっているかわかりませんが,ともかくそれを…

DBIC で JOIN (prefetch) と rows の相性よくない?

以前も書いたように DBIC でのリレーションは,PREFETCH すると INNER JOIN や OUTER JOIN な SQL が発行されます。一方,ページャとして有用な page, rows アトリビュートは LIMIT, OFFSET を利用しています。ですから, my $artists = $schema->resultset(…

search.cpan.org の調子悪い?

うちからアクセスできないだけですかね。 と思ったらアクセスできるようになりました。 と思ったらなんかおかしいですね。そんなに困らないかなと思ったら意外に依存した生活をしていたのでした。

DBIC-0.07 リリースっすか?ガガーン

と思ったらまだ置いていなかった罠。

Fedora で rpmbuild したいなら fedora-rpmdevtools

rssh を spec から rpmbuild したんですけど,気が付いたら設定ファイルが /etc/rssh.conf ではなくて /usr/etc/rssh.conf になってました。???と思ったんですが,rpmbuild --showrc で _sysconfdir を見ると /usr/etc に。yum install rpm-build して満…

多段 rsync がめんどくさい

[local] <-> [gateway] <-> [remote]みたいな状況で,local <-> remote で rsync をやりたいんですが,これが面倒くさいのです。http://samba.anu.edu.au/rsync/firewall.html にいくつかのやり方が書いてあるんですが, ssh-agent を forward することによ…

cciss と reiserfs で失敗

Fedora core 5 を HP のサーバにインストールしたら「can not find filesystem」と panic られました。RAID と reiserfs の相性がよくないのか ext3 にしたらうまくインストールできました。がーん。

じゃあ try @ Error で return するとどうなるのか

昨日の話をふまえたうえで #!/usr/bin/perl use strict; use Error qw(:try); sub test { try { warn 'step 1'; return; warn 'step 2'; }; warn 'step 3'; } test();の結果は, step 1 at test.pl line 8. step 3 at test.pl line 12.やっぱり,そうなるん…

sub 内部で eval ブロック内から直接 return できない

すいません,基礎ができていませんでした。 sub foobar { my $arg = shift; eval { return 'not defined' unless defined $arg; }; return 'defined'; } print foobar(); # 'defined' is printed.eval() 内の return は eval 節自体の評価値として返す,とい…

pg_restore で --table オプションを指定しないほうがよい

db

% pg_dump -Fc -t my_table -Z 9 -U dbuser mydb > my_table.dumpみたいにテーブル単位で圧縮ダンプしたデータを,念のために,と思って % pg_restore -c -Fc -t my_table -U dbuser -d mydb my_table.dumpとしたら,インデックスが復帰されないわ GRANT の…

Samba 3.0.23 で ads と unix group がうまくいかない

ふと気づくと Fedora の samba が 3.0.23 になっていました。それで再起動したんですが,共有ディレクトリにうまくアクセスできなくなってしまいました。私の環境はちょっと特殊なんですが, 認証は ads で Windows Server におまかせ ADS に登録されていて …

DBICで本当に困ったら SCALAR REFERNCE を使え

追記 2006/12/06 下記で IS NOT NULL を実現するのにスカラーリファレンスを使用していますが,IS NULL / IS NOT NULL を出すためには必ずしもスカラーリファレンスを利用する必要はありません。ということで訂正を入れようと思ったんですがちょっと長いので…

Clone::More とか Clone::Fast とか出てきた?

ハッシュのディープコピーにこれまで Clone を使っていたんですが,メモリリークが起きる可能性があるそうで Clone::More および Clone::Fast なるモジュールが CPAN にあがってます。まだ読み中なので何ともいえないですが,とりあえず落ち着いて POD 書け…

rsync で凝ったファイル名のパターンを指定する

デプロイするとき何を使うか。もちろん Capiなんとかとかいう高機能なデプロイツールを使うことができればいいのですが,使い方を習熟しなくちゃいけないですし,いろいろ環境を設定しなくちゃいけません。レポジトリ作ってなかったりもするので,お手軽に r…

VMware Server 1.0.0 リリース

突如開発環境の VMware の vm が止まってしまいました。なぜ?と思い VMware console でつなぎにいくと,suspend してます。resume しようとしたら「シリアル番号が正しくないよ」といわれました。えっえっえっ???焦って VMware のホームページを見に行っ…

Email::Valid に 内部 utf8 文字列を渡すとはまる

use utf8; use Email::Valid; print Email::Valid->address('日本語@ドメイン.です') ? 'OK' : 'NG', "\n";の結果は「OK」となります。Email::Valid::Loose でもそうなります。 国際化ドメインとして考えるのならいいのですかね?でもその場合でも local-par…

DBIC での SQL 覗き見と Log::Dispatch

今まで $schema->storage->debug(1) として標準出力に出力される SQL 文を監視していたのですが,なぜか早く終わるリクエストでとらえきれなくなってしまいました。やむなくロガーを導入することにしました。Log::Log4perl は仕様が重そうなので(log4j のと…

謎フレームワーク Tripletail

今日は体調がすぐれなかったのでお休みしてしまいました。おうちから CPAN の Recent をみてたら,「TL」とかいうのがどかどかと up されてました。?なんだこれは?と思ったら,TL - Perlフレームワーク らしいです。ユミルリンクですかぁ。

Catalyst が 5.70 リリースしてた

いつものように CPANPLUS でアップデートチェックしたら Catalyst が 5.70 になったよ,といわれました。いくつかの developper release を越えて,七夕リリースとなったようです。アップデートしたら Catalyst-Runtime とかいう dist になっててなんだこれ…

mod_perl で時間がかかる処理を行う場合

CGI 時代では,たとえばメールを送るなど時間がかかる処理を行う時は fork() を使っていました。子プロセスでメール送信,親プロセスでレスポンスを返す,とやると,ユーザはメールが実際に送られるかどうかに関わらず ASAP でレスポンスを受け取ることがで…

TT で custom filter (2)

前回よりだいぶ間があいてしまいました。 3. filter ファクトリクラスを作って LOAD_FILTERS で指定する まずファクトリクラスの書き方ですが,Template::Filters というよいサンプルがあるので読みましょう。というのは冗談で,めんどくさい部分を Template…

DBIC における今日のつれづれ

read only な connection がほしい。もちろん本筋としては読み取り専用ロールなユーザを定義するべきなんでしょうが。Plugin として書くべきか,DBIx::Class::Storage::DBI を継承した Storage を書くべきか。 PKEY 定義されてないとリレーションをうまく参…

Class::Quartet

今のプロジェクトでも同じような機構を使いました(1, 3, 4 あたり)。ので http://e8y.net/blog/2006/07/06/p124.html を読んで多いに共感→期待。 さすがに SYNOPSIS を見るとごちゃごちゃ感は否めないですね。仕方ないですけど。