ZendFramework 1.7.5へ

ZendFramework1.5.2から現状不足している機能がなかったので、
そのままバージョンアップしてなかったんですが、今回Zend_Dateの日付計算で
不具合が出たので、最新の1.7.5にバージョンアップしました。

嬉しかった点は、Zend/Mail.phpの中身を編集しなくても
文字化けをしないように設定できるようになった部分。
これをやるのがおっくうでバージョンアップしてなかったのもあったので。
こんなふうにsetEncodingOfHeadersでbase64を指定できるようになってました。

public static function sendInfo($params)
{
  $mail = new Zend_Mail('ISO-2022-JP');
  $mail->setEncodingOfHeaders(Zend_Mime::ENCODING_BASE64);
  $mail->setBodyText(self::_encode(trim($params['body'])), 
            null, 
            Zend_Mime::ENCODING_7BIT)
     ->setSubject(self::_encode($params['subject']))
     ->setFrom('yyyy@yyyy', 'zzzz');
     ->addTo('xxxx@xxxxxx');
     ->send();
}

private static function _encode($str)
{
  return mb_convert_encoding($str, 'ISO-2022-JP', 'UTF-8');
}

少しはまったのが、Zend_Date。new Zend_Date(‘xxxx-xx-xx’)とやると
クラスを生成できてたのですが、Localeがうまく取得できなくなっているようでした。
以前、ソースをおったときは、ブラウザから情報を取得していたし、
今回ざっと見た時もそれっぽい部分があったのですが、なぜかLocaleでエラーになります。

Zend_Registryを使って、’Zend_Locale’に’ja_JP’を設定しておけば、
設定したLocaleを利用してくれるので、index.phpで設定して問題を回避しました。
ソースをちゃんと見たいところですが、今は問題解決が先です。

お得期間

このサイトに限らず、co-hey.com関連は、hetemlというレンタルサーバで運営してます。
php5も使えるし、ZendFrameworkも動くし、MTやWPもOK。

共用サーバだから、アクセスが集中しすぎるのはまずいだろうけど、
僕のサイトはそんなことにはならいので、快適に使ってます。

今、初期費用無料期間中なので、今までよ4000円くらいお得。
サーバ乗換とか検討しているなら、候補にいれてもいいかもです。

プログラムできるけど、サーバの知識があまりない僕にとっては、
共用サーバはとてもありがたい。専用サーバで、全部管理は無理っぽい。

考え中

このブログは、Movable Typeで作成しているのですが、
WordPressにしようか考え中です。

なんか軽いし、2.7になって更に使いやすくなったって話だし。
めんどくさいなーって思いながらもひかれてます。

javascriptで、正負の整数、小数をチェックする

正負の整数、小数をチェックする正規表現ではまったのでメモ。

許容したいのは、1, -10, 0.5, -1.2

^-?[0-9]+(¥.[0-9]+)?$

と書いていたが、小数点を入れると一致しなくなる
¥. を . にしてみると任意の一文字となり、0a0等も許容してしまう。
上記で動かない理由を探していたけどわからないので、以下に変更

^-?[0-9]+([¥.]{1}[0-9]+)?$

これで意図した通りに動きました

あけましておめでとうございます

正月は、初詣と初売りに行った以外は、ほとんど家でためてたDVD見たり、年賀状書いたり、DJしたり、曲探したりしながら過ごしました。いい曲とも巡り合い、いいスタートになりました。

今年もZendやjQueryの勉強をしつつ、他の部分にも手を出していきます。
あとは、DJでも春までクラブでのプレイはお休みしますが、去年よりはMixを作成していこうかと考えています。ミキサーも新しくして音質もあがったし、楽しくできそうです。

今年もどうぞよろしくお願いします。

メールが送れない

ローカル環境(Mac OS 10.5)で開発をしているんですが、
プログラムからのメール送信ができない。。。

% sudo /usr/sbin/sendmail -bd -q1h

で、sendmailを起動したら、sendmailでエラーはでなくなったけど、
送信先にメールが届いていない。
gmailに送ってみた結果、以下のログが。

postfix/smtp[967]: connect to alt2.gmail-smtp-in.l.google.com[209.85.217.183]: Connection refused (port 25)
postfix/smtp[967]: connect to alt1.gmail-smtp-in.l.google.com[72.14.205.27]: Connection refused (port 25)
postfix/smtp[967]: connect to alt2.gmail-smtp-in.l.google.com[209.85.217.182]: Connection refused (port 25)
postfix/smtp[967]: connect to alt2.gmail-smtp-in.l.google.com[209.85.217.177]: Connection refused (port 25)

25番ポートで接続できないってことなのかと思い、
http://blog.dc-d.jp/archives/1002.html
を参考に、master.cfを編集し、再起動しても結果は変わらず。

一時間ほど検索しても、これだ!!って内容は見つからず。
/etc/mail/配下のファイルを変更する手法も見つかったが、これは自分で
sendmailをインストールした場合に有効そうだった。

また、時間見つけてやろうと思います。
これやったか?ってのを教えていただけると、大変助かります。

日産フェアレディZ

http://www.carview.co.jp/magazine/photo_impression/2008/nissan_fairlady_z/

日産フェアレディZがモデルチェンジを行った。
外観はよりマッチョになった。特にテールの下部(マフラー周り)がかっこよくなったと思う。
特徴的なのは、テールランプとライト。この形、横やななめから見るとしっくりくるけど、
真正面から見ると違和感を感じてしまう。同じ個所をあらゆる角度から見られるものを
デザインするってほんとに難しいよなと思ってしまう。

新型か旧型かといわれると、絶対新型を選ぶだろうなという見た目。かっこいい。
同じ400万を出すなら、アウディのTTの方が魅力的だとも思う。
Zなら黒、TTなら白に惹かれる。

買えないんだけど、好きだから妄想も楽しい。

気になったサイト

http://rin-kaku.jp/

どうやってみつけたか覚えていないけど、昨日見つけて、気になったので、ブックマークしておいた。
今日、ショートストーリを読んでみると面白い。
代官山のAfricaとか名前を知っているところが舞台だからなのか。

自分よりだいぶ大人な人達のストーリーだと思ったけど、
自分も結構いい年齢だと感じてしまう。中身は若僧もいいとこ。
こういうストーリーとは無縁なところにいる。
巡り合いたいわけではなく、こういうのがあっても、中身が幼いから
違和感たっぷりってことが、ちょっとさみしい。

インタビューのところも見てみよう。

Zend_Pagenatorを使う

http://framework.zend.com/manual/ja/zend.paginator.html

これを使ってみた。
マニュアル読んでもあまりピンとこず、サンプル見た方が早い。

Zendを使うときは、Zend_Viewではなく、Smartyを使っているので、
Zend_View_Smarty(Smartyを使うためのラッパー)に追加が必要になります。
http://framework.zend.com/manual/ja/zend.view.scripts.html#zend.view.scripts.templates

上記がZendのマニュアルにのっているZend_View_Smartyクラス。
これに、Zend_View_Abstractクラスから以下のメソッドをコピペしたら、
Zend_Pagenator等のZend_Viewヘルパー、プラグインが呼び出せます。
 ・__call
 ・getHelper
 ・getPlugin
 ・getPluginLoader
 ・getHelprPaths()

private変数なんかは、上記のメソッドで使ってるやつを適宜追加してください。

まだ、Zend_Pagenatorしか使ってないので、他のプラグイン、ヘルパーを
使うには抜けがあるかもしれません。

Zend_Pagenatorは、動いてみると楽でした。これ便利です。
ページャーはPEARのやつを組み合わせてたんですが、もう使わなくていいですね。