宅配レンタルサービス

CDやDVDの宅配レンタルサービスはどの企業も1ヵ月無料キャンペーンをやっていて、競争が激しい。1ヵ月ずつ借りてみた結果についてまとめてみた。
宅配レンタルサービスは、お店に借りに行かなくてもよく、お店に行ったけれど借りたいものがすべて借りられていて結局無駄なものを借りたってこともないから、とても便利なサービスだなぁと思った。
TSUTAYA DISCAS
TSUTAYAのレンタルサービスということもあり、在庫が豊富。発送先は埼玉県なので、首都圏であれば注文後1日で到着する。返却するための封書に工夫されていて、返送が便利。
楽天レンタル
楽天が運営するレンタルサービス。発送先は埼玉県なので、首都圏であれば注文後1日で到着する。つぎクルというサービスがあり、返却前につぎクルをすれば、返却してまた借りるまでの期間を短くすることができる。
DMM
DMMのレンタルサービス。DVDの商品数を非常に多い。発送先は石川県なので、首都圏だと少し時間がかかる。返却するための封書は送付状を裏返しにしなければならないという部分が微妙。

携帯に対応させる

cakePHPで作成したサイトを携帯に対応させるためには、文字コードの問題に対応していかなければならないし、また、デフォルトのレイアウトも変更する必要ある。
CakePHPクッキングのページに有用な情報が掲載されていたので紹介したい。
CakePHPガイドブックでは、ヘルパーを使って対応していたが、うまくいかなかったので、紹介されている情報のようにappControllerで対応するとうまくいった。バージョンが1.1から1.2になって実装が一部異なっていることが原因だろうと思う。
cakePHPでPCと携帯で出力文字コードを変更する方法は1.1対応のサイトになっているが、入力データの文字変換の点は参考になる。1.2では次の通りとなる。
function beforeFilter(){
 if (isset($this->params[‘prefix’]) && $this->params[‘prefix’] == ‘mobile’){
  if (!empty($this->data)){
   mb_convert_variables(‘UTF-8’, ‘Shift_JIS’, $this->data);
  }
 }
}
※ソースコードのスペースは全角スペースになっています。

SpamAssassinのメモリ使用量が異常

今日突如SpamAssassinのメモリ使用量が1GBを超えてスワップをしてしまい、サーバーがダウンしてしまった。
最近はメールの受信件数がかなり多くなっていたことが気になっていたが、さすがにここまでになるとは思わなかった。
いろんなサイトを参照させていただき、有用となる情報をまとめて対応してみた。
メーリングリストより・・・
/etc/mail/spamassassin/local.cf にて
bayes_expiry_max_db_size 1000000
bayes_auto_expire 0
を追加してspamassasinを再起動する。
SpamAssassin によるスパムメール対策より・・・
/etc/procmailrc にて
:0fw
*!^X-Spam.*
|spamassassin
となっている場合には
:0fw
*!^X-Spam.*
| /usr/bin/spamc
として起動するプログラムをspamcに変更する。

tagErrorMsgに相当するバリデーション

cakePHP 1.1ではバリデーションの結果に対するエラーメッセージをhtmlヘルパーのtagErrorMsgメソッドにて場所を指定することができた。
cakePHP 1.2ではtagErrorMsgメソッドが利用できなくなっている代わりに、formヘルパーのerrorメソッドを利用して、エラー出力場所を定義できるようになった。ただし、inputメソッドの場所にデフォルトで出力されるため、errorメソッドでエラーを出力する場合には、メッセージを抑止するようにしなければならない。
詳しくは、CakePHP 1.2 Form ヘルパーで input タグとエラーメッセージを別々に表示する方法に詳しいので、参照してみてください。

ajaxのAutoCompleteを実現する

とりぷる ぷぅさんのサイトが参考になりましたので、紹介しておきます。
cakePHPだとさほどコードを書かなくてもオートコンプリートが割と簡単に実現できるのがすごいですね。
それにしてもAjaxのヘルパーに関する情報やバリデーションに関する情報がまだまだ少ないように感じるのは気のせいでしょうか??このブログでどんどん有用なサイトをご紹介していきたいと思います。

CakePHPガイドブック

cakePHPの少ない書籍のうちの一つです。基本的な部分から押さえていきたい場合には、お勧めの一冊になると思います。cakephp.jpg

テーブルの定義を確認する

show columns from テーブル名;
でも確認できるが、外部キーなどの確認はできない。
MySQLのマニュアルにあるが、
show create table テーブル名\G;
とすることで定義を確認することができる。
なお、MyISAMでは外部キーは使用できず、alter table テーブル名 add foreign key 外部キー名(カラム名) references 参照テーブル名(参照カラム名)としても無視されてしまう。

このコマンドを処理するのに必要な記憶領域をサーバーで確保できません。

Norton Antivirusをインストールしているマシンにてファイル共有を設定している場合、そのマシンの共有フォルダにアクセスしようとするとエラーが出ることがある。
既知の問題のようで、Microsoftサポートオンラインに情報がある。
今回問題の起こった端末を確認するとイベントビューア(システムログ)にイベント ID : 2011が記録されており、この問題と同じであることが分かった。
レジストリキーを確認すると
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters にはIRPStackSizeというエントリがなかった。最初はデフォルトの15(10進数)を指定して再起動したが状態は変わらず、18(10進数)を指定して再起動すると正しくアクセスできるようになった。