日曜日, 12月 31, 2006

[Linux] Catalystデモから勉強したこと(Chain)

CPANのCatalyst/DispatchType/Chaine
の要約とテストからのメモ.

Chained属性では,準備した関数間の連結(前に来る関数名を指定)を行います(引数を省略した場合は"/"扱い).またPathPart属性でその後に来る実URLを記述します(引数無しは関数名を実URLとして扱います).

このときChained('.')と指定することができ,その時点でのコントローラでの名前空間パスが入る,,らしいが使い方がいまいち不明.



CaptureArgs属性で,内部処理に使う後続URLパスのデータ個数を定義(個数を指定しない場合は無制限(に受け取る))でき,その値を受け取ることができます.Args属性は(CaptureArgs属性と近しいですが)chianがその関数で終了するときに利用します(下の例では,値の受け渡しは@_で行われている).

sub wiki : PathPart('wiki') Chained('/') CaptureArgs(1) {
my ( $self, $c, $page_name ) = @_;
~snip~
}


コンテキスト経由で値を処理する場合はCaptureArgsとArgsでは格納場所が違い,前者は$c->request->captures->[$level]であり($levelにはそれまでキャプチャされたURLパス文字列が配列格納される),後者は$c->request->argumentsに格納される.

またとても参考になる(より複雑な)例はこちら

金曜日, 12月 29, 2006

[Linux] htAxess

BASIC認証部分の運用ツールを探していたら,htAxessというのがあった.

SourceForgeにプロジェクトは立っているものの,まさに作りかけでUIもイケていない(総じてオープンソース系は運用ツールを作って公開することにモチベーションが上がらない,ものですね(自慢できないからかな)).

htAxessツールとしての認証も.htpasswdで行うため「adminというユーザを作り,その人で(ユーザと同じ)PW変更画面で"Reset"すると管理画面に行ける」という仕様がなんとも.


・・・というときに,文句ではなくパッチでも作って貢献すべきであろうと思い立ち,人生初パッチを送ってみた(良くしたいといよりは,パッチ貢献をしてみたかっただけなのだけど).

月曜日, 12月 25, 2006

[S3] PerlからS3ストレージを利用(ちょっと進歩)

s3コマンドが使えました.

[tf0054@domU-12-31-33-00-XX-XX aws]$ ./s3 -d ls
Listing all buckets
Got all buckets listing
6ca1e26410693a4d27ad25ddca1f4-default
[tf0054@domU-12-31-33-00-XX-XX aws]$ ./s3 -d ls 6ca1e2641XXXXa4d27ad25ddca1f4-default
Listing bucket '6ca1e2641XXXXa4d27ad25ddca1f4-default'
Got bucket listing
0.dir
1.Deploying Lucene on the Grid_-pdf.file
[tf0054@domU-12-31-33-00-03-A8 aws]$

ポイントは環境変数を追加で設定しておくこと.

[tf0054@domU-12-31-33-00-03-A8 aws]$ env | egrep '(S3|AWS)'
S3_CWD=/home/tf0054/aws
AWS_SECRET_ACCESS_KEY=XXXXXZjQHRF4bHlyFfYqHTGZpNpr1isDjApXXXX
AWS_ACCESS_KEY_ID=07ZX98TTVSJG2027XXXX
S3_LIBDIR=/home/tf0054/aws/s3-example-libraries/perl
[tf0054@domU-12-31-33-00-03-A8 aws]$

なかなか奥が深い(というかJungleDiskで作ったバケット名が怪しかっただけ?).

[Perl] 一般ユーザでのCPAN

意外に一般ユーザでのCPAN利用(自分のホームディレクトリ内にPerlモジュール用のディレクトリを切り、使う場合は"use lib"する)は大変ですね...

Perlを使ってもう5年以上たちますが、やっと意味が分りました(恥かしい・・).

~/.cpan/CPAN/MyConfig.pmの書換えはこの一行でよくて、

'makepl_arg' => q[INSTALLDIRS=site LIB=~/modules LIB=~/modules/lib/perl5 PREFIX=~/modules]


ポイントはこれと一緒に(bashなら)PERL5LIBを設定すること.

export PERL5LIB=~/modules/lib/perl5


皆これをやってんのかなぁ.すごいなぁ.

月曜日, 12月 18, 2006

[S3] PerlからS3ストレージを利用(しかかり中)

awsの開発者フォーラムでPerlからS3を使うスクリプトが公開されていることを,今更ながら見つけました.

s3syncとまさにやりたいことなのですが,でもこの中で使っているs3-perlとは何だろう..debianのパッケージ情報しか引っかからないけれど...Net-Amazon-S3というモジュールをCPANで見つけたけど,これとか使うのかな?

[tf0054@domU-12-31-33-XX-XX-XX Net-Amazon-S3-0.37]$ perl Makefile.PL PREFIX=/home/tf0054/a
ws/perl
Checking if your kit is complete...
Looks good
Warning: prerequisite Class::Accessor::Fast 0 not found.
Warning: prerequisite DateTime::Format::Strptime 0 not found.
Warning: prerequisite Digest::HMAC_SHA1 0 not found.
Warning: prerequisite HTTP::Date 0 not found.
Warning: prerequisite LWP::UserAgent 0 not found.
Warning: prerequisite URI::Escape 0 not found.
Warning: prerequisite XML::LibXML 0 not found.
Warning: prerequisite XML::LibXML::XPathContext 0 not found.
Writing Makefile for Net::Amazon::S3
[tf0054@domU-12-31-33-XX-XX-XX Net-Amazon-S3-0.37]$

しかし関連モジュール多いなぁ.プロトタイピングするならこれくらい使えこなせなくては,というモジュールばかりな気もしますが...

また,その他"s3-perl"というプログラムが指定されていますが,これはAWS開発者フォーラム内で公開されてるものです.

日曜日, 12月 17, 2006

[PostgreSQL] やばいSQLをlするには

現在実行中のクエリ一覧はこれで見る.

select pid,current_query from pg_stat_activity;


でロックしている状況を見るにはこれで見る.

SELECT l.pid, c.relname, l.transaction, l.mode, l.granted FROM pg_locks l LEFT OUTER JOIN pg_class c ON l.relation = c.oid ORDER BY 1;


この結果が以下のような場合,

pid | relname | transaction | mode | granted
-------+---------------------------------+-------------+------------------+---------
5423 | xxxxxx_site_view | 1435608385 | AccessShareLock | t
5423 | | 1435608385 | ExclusiveLock | t
5423 | xxxxxx_kai_seigyo | 1435608385 | AccessShareLock | t
~省略~

OS側から"kill -TERM 5423"(ここで"-9"はダメ(当たり前か)).

土曜日, 12月 16, 2006

[Windows] deskloops

xilokitという会社のdeskloopsはすごい.画面がぐりぐり動く仮想デスクトップソフト.回りすぎ..

かも(画面の左右にカーソルを持ってゆくと帯みたいに回る...説明が難しい.ちなみに使用メモリは22M.多いととらえるか微妙なところですね.

金曜日, 12月 15, 2006

[erlang] Yaws

erlangで書かれたWebサーバ。現在もちゃんとメンテされており性能も素晴らしいとのこと(ホントか?)。

また、JSPのように中にerlangのコードを書くこともできるらしく、その点おもしろいかも(みかログさんを参照)。

木曜日, 12月 14, 2006

[Linux] mob_bw

apacheのバンド幅制限を行うモジュールmod_bw。使うことがあるかもしれず、かつそんな時は火急なためメモ。

水曜日, 12月 13, 2006

[Linux] pipebentch

シェルのパイプは、便利な反面、意外にボトルネックになっていると聞いた事があります。このパイプの速度(流し込み速度)を測ることができるツールpipebentchを見つけました。

syntoolという一群のプログラムに含まれているもののようです。

火曜日, 12月 12, 2006

[PHP] 気にすべきポイント12選

もう既出ですが。
PHPってCache-Tryじゃないですが、エラー制御演算子なんてものがあって"握りつぶし"ができるのですね。。。ある意味きがきいているのかな(普及するわけだ)。

月曜日, 12月 11, 2006

[PHP] vld

vldはPHPスクリプトの、実行前オペコード状態(?)を見ることができるツール。php5にも対応しているようで使いようによっては面白そうです。

日曜日, 12月 10, 2006

[Linux] lingerd

apacheのTCPセッション管理が甘い部分を、代わりにざくざくと処理してくれるデーモンlingerd。いまいち細かいところが不明であり、まあ2002年が最終更新なので本体に同様の処理が組み込まれたのだろう。

金曜日, 12月 08, 2006

[Linux] osCommerce(2.2ms2-060817)導入

入れてみた(8月17日版≒英語).

php4とmysql縛りがある(php5では動かない)が,カートから特価設定(何日まで)など,素人的には必要機能は殆ど揃っているイメージ.

日本語版はどこまでどうなんだろう.更新がとまっているようだけど...

日曜日, 12月 03, 2006

[Linux] coLinux(v0.6.4)+FC5

coLinuxを初めて使う+FC5イメージ(FedoraCore5-2006.8-ext3-2gb.7z)から入ると,かなり各所にトラップ有り...

<1>ネットワークの設定
まずそもそも我が家は192.168.0.0/24なので,おかげでWindowsのICSが使えない.つまりはTAPとかなんとかいくらがんばってだめ.なので"slirp"という方式を利用することに(default.colinux.xmlのネットワーク設定は下記).

<network index="0" type="slirp" redir="tcp:22:22/tcp:23:23/tcp:80:80" />

先に書いちゃうと"slirp"では,Windowsからその中に立ち上がるLinux(ややこしい)にアクセスするすべが(普通にしてると)無くなるので,Windowsの22番ポート(および23番と80番)をcoLinuxで起動させるLinuxへリダイレクトしろ,というのが"redir".

<2>cracklibが壊れとる
普通に起動してrootでpasswdしようとすると失敗する.
これはココを見て解決.

<3>パッケージの追加
このイメージにはそもそもsshdやらそもそもsshやらが,ぜんぜん入っていないので各種インストール.
yum install openssh-server openssh-clients


<4>namedさんが居ない
起動時にnamedというユーザは居ないよ,と起こられ続けるのでこれを追加.
named:x:25:25:/tmp:/sbin/nologin


<5>日本対応
キーボードとタイムゾーンを変更
/etc/sysconfig/keyboard : enをjp106に


/etc/localtimeを/usr/share/timezone/Asia/Tokyoのsymlinkに



<6>ipv6無効化
/etc/modprobe.confに以下の行を追加.
alias net-pf-10 off


<7>Windowsからssh出来ない
これにはかなりはまった.というかこのイメージを使っているひとはそもそもsshで接続していないのかな...「Unix98では上記のものを使用せず、代わりに/dev/ptmxと呼ぶ"pty master"を使います」というこのptmxが在りません...作りましょう.
mknod -m 622 /dev/ptmx c 5 2


でもまぁメモリも128しか割り当てていないけど,結構快適であとあと面白そうです.