trigger_errorの使い方

使い方マニュアルはこちら。
http://phpspot.net/php/man/php/function.trigger-error.html

私は読んでもピンとこなかったので、動かしてみることに。
trigger_errorに渡したメッセージが、ブラウザに出力されました。表示形式はphpのエラーと同じフォーマットで、trigger_errorを実行したファイル、ファイルの行数、設定したメッセージが表示されます。
(”}”の対応が間違ってたりしたときに、warningとかでるあのフォーマットです。)

自分で共通クラスとかつくったときに、使い方が間違っていたら今までException発生させて間違っているよということを通知していましたが、trigger_errorを使った方がいいかなと思いました。
Exceptionの中身からエラー発生行数とか見つけなくていいですし。

ZendFramework1.11.1はPCREのUnicode対応が必要

ZendFramework1.10.1から、1.11.1に変えたときに、Noticeメッセージがでました。内容は、「PCREがUnicodeをサポートしてませんよ」というもの。
Niticeメッセージはでないようにしてたのにと思って調べてみたら、ZendFrameworkのZend_Locale内で、trigger_errorを使ってメッセージを出してました。なので、ちゃんとPCREをUnicode対応にしました。

参考にさせていただいたサイトは以下です。
http://junrei.dip.jp/wordpress/nagios/pnp4nagios%EF%BC%880-6-2%EF%BC%89%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/

以下のコマンドで、PCREがUnicodeに対応してないことを確認。

# pcretest -C
PCRE version 8.02 2010-03-19
Compiled with
  UTF-8 support
  No Unicode properties support
  Newline sequence is LF
  \R matches all Unicode newlines
  Internal link size = 2
  POSIX malloc threshold = 10
  Default match limit = 10000000
  Default recursion depth limit = 10000000
  Match recursion uses stack

まずは、以下のファイルを作成。
デフォルトのリポジトリに、pcre-unicodeがないので、下記のリポジトリを追加します。私の環境だと、phpをインストールするときに、追加してました。(忘れてました。。)

# vi /etc/yum.repos.d/utterramblings.repo

[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

そして、以下のコマンドを実行

# yum install pcre-unicode

再度、unicodeに対応しているかをコマンドで確認。

# pcretest -C
PCRE version 8.02 2010-03-19
Compiled with
  UTF-8 support
  Unicode properties support
  Newline sequence is LF
  \R matches all Unicode newlines
  Internal link size = 2
  POSIX malloc threshold = 10
  Default match limit = 10000000
  Default recursion depth limit = 10000000
  Match recursion uses stack

Unicode properties supportになったのでOK。
Noticeメッセージもでなくなりました。
ZendFrameworkを利用するときに覚えておく必要がありそうです。

ZendFrameworkの環境変数APPLICATION_ENVを設定する

ZendFrameworkでは、index.phpにもともと書いてある記述に以下の環境変数に関わるものがあります。

/ Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

APPLICATION_ENVが設定されてなかったら、’production’ という文字列を、APPLICATION_ENVとして設定するという内容です。このAPPLICATION_ENVはどこで使われているかというと、Bootstrap内で、application.iniを読み込む際に、パラメタとして渡されています。

application.iniは、DB接続設定等を書くファイルで、APPLICATION_ENVの値を、本番環境、テスト環境等で変えることによって、ファイルを編集することなく、DB接続先の設定を環境に合ったものに設定することができます。iniファイルの書き方は、こちらをご参照ください(http://framework.zend.com/manual/1.11/ja/zend.config.adapters.ini.html)

今回、/etc/sysconfig/httpd に以下の記述を追加すると、apacheにて環境変数を追加することができました。

export APPLICATION_ENV="development"

.htaccessを使うと、”setEnv”を使って記述することもできます。その場合の書き方は以下になります。

setEnv APPLICATION_ENV development

これまで、.htaccessを使ったやり方のみでやってきて、/etc/sysconfig/httpd を編集する方法を知りませんでした。

Zend_Mailで文字化けしなくなっていた

以前、こんな記事を書きました。
https://life.co-hey.com/2009/02/zendframework_175_1/

その後、Zend_Mailをいじることはなかったんですが、最近また利用する機会があったのですが、Zend_Mailの中身を修正しなくても、文字化けしなくなっていました。

$e = Zend_Debug::dump($errors->exception, null, false);
$mail = new Zend_Mail('iso-2022-jp');
$mail->addTo('test@co-hey.com')
     ->setFrom('error@co-hey.com')
     ->setSubject(mb_convert_encoding('例外が発生しました', 'iso-2022-jp', 'UTF-8'))
     ->setBodyText(mb_convert_encoding(strip_tags(htmlspecialchars_decode($e)), 'iso-2022-jp', 'UTF-8'))
     ->send();

ErrorController.phpの中で、上記のプログラムでエラー発生箇所をメールするという用途で使っています。バージョンアップの度に、Zend_Mailを1行修正する手間がいらなくなるのはうれしいです。

動作を試したのは、1.10.1ですが、いつから文字化けが解消されていたのかはわかりません。。

今週金曜日(12/17)、青山LoopにてDJやらせていただきます!

僕の日記をみてくれている方なら、podcastって言葉はご存知ですよね?
Signum PodcastのPodcastです。そうそう、あれです。
(そんなの知らん or もっと詳しくってかたは、こちらへ。
 http://mixi.jp/view_diary.pl?id=1226204452&owner_id=177995)

これ、最初に始めたのはSignumメンバーのAtsuoちゃんです。
その後、僕が管理を引き継ぎました。僕が管理し始めたのは2009年。

このころ、日本のPodcastブームも下火になってたけど、海外では盛んな状態で、
日本でpodcastは流行らないんだろうなーってイメージが一般的でした。

だけど、にこにこ生放送、Ustremで、個人が文字、画像情報だけではない、
音声、動画で、情報を発信できる環境が盛り上がってきました。
radikoのように、既存のメディアが、ネット経由でコンテンツを流す形態も出たし、
Ustreamは、個人だけではなく、TVに出てくるようなアーティストのコンサートや、
お金払って観に行くようなDJのプレイを見れるようにもなりました。

そういう中で、podcastは、ライブ配信をやった際のバックナンバーとして、
ライブでやったことをより作りこんだパッケージ版(ライブDVDみたいなイメージ)として、
あるいは、通常のTVやラジオのような多数の人が聞いているメディアでは放送できなかった
部分を配信するための深夜番組的なノリの情報伝達手段として、利用数が増えてきました。
今、結構おもしろい時期ですよ。

この、Ustream、にこにこ生放送、podcastを個人でフル活用している人が1人います。
DJ Y-park。podcastから触れていったんですが、個人的につぼってます。おもしろい。
雑談あり、雑学あり、最近はitunes Storeのpodcastカテゴリで、注目Podcastにピックアップされたり。
個人運営の中で、この継続性と、反響はすごいなと思っています。

そんな、DJ Y-parkのインターネットラジオ、USR Retreat Radioが今回2周年を迎え、
アニバーサリーパーティーが青山Loopで行われます!!

参加するDJは、クラブ以外に、ネット上でも何かしらの活動を行っている方が多数。
podcast組として、僕も参加させてもらえることになりました。

Ustrem、にこにこ生放送、podcast、どれかしらに興味がある。
ネット上で観てたけど、実際のクラブで音楽を楽しみたい。
そんな方は絶好のチャンスです。
音楽も楽しめるし、それぞれの人がこれから何に注目して、何をやろうとしてるのかとか、
そういう話もできる場になると思います。

フロアと、ネットの間をゆらぐ、いつもとちょっと違うここで一緒にあそびましょー。

入口で、「こーへいのディスカウントで!」と言っていただければ、
ディスカウント料金で入れますので、ご利用くださいませ☆

============

今話題のライブストリーミング!。この熱いメディア上で、毎晩様々な番組が大小含め
異様な盛り上がりをみせています。極致的な界隈で、2008年からクラブカチャーへの入り口へいざなうラジオを展開してきたURBAN SOUL RELAXによる番組、USR Retreat RADIOがこの度2周年となります。第三回目となるAtmosphereはこれのアニバーサリーパーティーとして、フロアとネットをひと紡ぎにします!。青山LOOPからリアルなグルーブをライブストリーミング配信!!。
もちろん、それはフロアへと向かう第一歩。ぜひパーティーにお越しくださいませ!。
当日は、並行してラジオパートも放送予定。DOMMUNE以前クラブカルチャー
ライブストリーミング黎明期のリアルなパイオニア達からいろいろお話を伺う予定です!。

URBAN SOUL RELAX presents
Atmosphere@LOOP vol3
-USR Retreat RADIO 2nd Anniversary Party-

Open22:00

Door 2500yen(1D)
Discount 1500yen(1D)

-music-
DJ Y-park(USR/S.C.P/2E2Lrecordings)
DJ CRYSTAL NUTS
DJ Flying Japman(2E2Lrecordings)
DJ co-hey(Signum)
DJ RiTEK(dj3dub.com)
DJ FLOPPI(itdj)
DJ K

-Visual&Streaming-
marea
URBAN SOUL RELAX

=============

青山LOOP
http://www.club-loop.com/

DJリストon Twitter
https://twitter.com/dj_ypark/atmospherevol3/members

「ライブストリーミングサイト」
USR RETREAT RADIO
http://live.nicovideo.jp/watch/co6728

ネットラジオ 22:00-29:00
音声のみです。
Only AudioStream
http://std1.ladio.net:8000/ypark_co6728.m3u

iMacも値下げ

http://store.apple.com/jp/browse/home/shop_mac/family/imac

この前、新MacBook Airが発表されて、MacBookの値下げをしていたAppleですが、今日サイトを見てみたら、iMacの価格も下がっていますね。10000円から20000円程度値下がりしているようです。今持っているMacBook Proを2008年に25万くらい出して買ったことを考えると、ほんとに安くなったなーと思います。

あと、2年くらいしたら、iMacの27インチが14万くらいで買えたりして。

気になったお店 From SALUS

SALUSという東急沿線のお店やイベントを紹介するフリーペーパーがあります。
職場も遊び場も東急沿線が多いので、新しいのが出ると見てるんですが、
今回気になったお店がいくつかあったので、忘れないために記事にします。

まずは、これ。
自由が丘のシェイク専門店「Hurricane Mixer
通常シェイクはアイスクリームをミキサーにかけて作られるけど、口当たりの滑らかさを出すために、ソフトクリームを作ってミキサーにかけているそう。それに、人工的なフレーバーがついて甘いばかりのシェイクがほととんだが、ここではファーストフード店のものとは違うものが楽しめるという内容に惹かれた。100円で飲めるシェイクと、500円するシェイクが同じだと困るけど、どんだけ違うものがでてくるのか興味がでた。
クリームブリュレも力を入れているみたいなので、ついでに食べてこようか。

次は、これ。
田園調布のパン屋さん「ベッカライ シュタインメッツ
シュタインメッツという製粉方法でつくられた小麦粉を使ったパンのお店です。
小麦の外皮のみを取り除いてから製粉されたもので、苦味が少なくなるが、栄養価が高い胚芽などの部分は残っているため、栄養価は落ちないっていう小麦だそう。ただ、扱い方が難しいものみたいです。バゲットみたいなハードなパンが好きなので、これは食べてみたいって思いました。外はパリっとしているのに、生地はたっぷりと水分を含んでモチモチと表現されてて、よく聞く表現ではあるけれど、この言葉のとおりのパンは間違いなく美味しい。

SALUSに載っていたお店ではありませんが、最近食べたパン屋さん、OTTOパン
ここのくるみあんパンは絶品です。めちゃめちゃうまい。

あと六本木ヒルズにある、ロブションで買えるパンも美味しいです。
食事は少々お高いけど、余裕があるときに行ってみたいなーとも思います。

MDR-V6を買いました

以前ブログでも紹介したmarantzのHP101が断線して、片方から音がでなくなってしまったので、代わりのイヤホンを探しているうちに物色の対象が段々ヘッドホンへ。会社の作業用なのでイヤホンである必要もないし、同じ値段だしたらヘッドホンの方がコストパフォーマンスがよかったり(多分)、長時間使うときは耳に突っ込むイヤホンより、上からかぶせるヘッドホンが耳が楽だったのもあって。

最初に興味を惹かれたのはSHUREのSRHー440。
渋谷のビックカメラにSRHー840があったので視聴したところ、音はいいけど、装着感が合わない。頭頂部にあたる部分がなんとも付け心地が悪い。段々痛くなりそうなくらい圧迫感。それに重い。会社でつけるってことは10時間以上つけっぱなしなこともあるので、この重量はきつい。SRHー440も視聴できるか聞いたところ、できないということなので、この時点で対象外へ。軽さが思ったより大事だなって感じたのと、その点で家で使っているMDR-900STがいいのが分かっていたので、同じ特徴をもってて価格もSRHー440と同程度のMDR-V6へ。

結果は満足。900STより長時間聴きやすい音だったので、一時しのぎに会社で使っていた900STより会社使いには適しているなって感じました。

こちらのレビューが分かりやすいです。
http://club.coneco.net/user/10682/review/29808/

携帯サイトでinputタグに入力制限をかける方法

携帯サイトに関わることはほとんどなかったのですが、
今回少しだけページを作る際に勉強になったことをメモ。

携帯でテキストの入力フォームに入力するとき、全角文字とか半角英数字とか
入力モードを切り替えるのってかなり面倒ですよね。
入力状態を最初から適切なものに変更させているとかどうしてるんだろう?
ってことで調べてみたら、すぐに出てきました。インターネット便利ですね。

// 半角英数字のみにする場合


// 半角数字のみにする場合

こちらのサイトで知りました。
http://kidokorock.com/2009/06/webtips/携帯フォームに半角数字だけ半角英数字の入力制.html
ありがとうございます。

あと、驚いたのが input タグの type=”button” が携帯だとtype=”text”のように表示されること。
これを解決する方法ってないようで、type=”button”は利用されていないようです。

VMをつくり直すときに役に立ったサイト

プログラムテスト環境として利用していたVMのハードディスク容量が足りなくなったので、新たに作り直しました。前回は勉強のためとソースからコンパイルして作ったんですが、今回はyumを使った方法を試してみることに。

途中うまく動かない箇所があったんですが、yumリポジトリを変えて再度構築しなおしたら、意図通りに動作する環境ができあがりました。そのときに参考にしたサイトを忘れないようにメモです。

いくつかのサイトを参考にしながら作成しましたが、うまくいったのはこのサイトの方法で構築したときでした。
【VMware Player上のCentOSに開発環境を構築 #2CommentsAdd Star】
http://rewish.org/php_mysql/vm_player_config_2

Gitのインストールの際に参考にしたサイト
【centos5.3でyumを使ってgitをインストールする】
http://d.hatena.ne.jp/uk_oasis/20090807/1249633626

ついでに調べた、Gitのクライアント。
【tortoiseGit】 tortoiseSVNのgit版。Win専用。
http://code.google.com/p/tortoisegit/

【SmartGit】 Win、Mac、Linuxに対応
http://www.syntevo.com/smartgit/index.html
Gitだけじゃなくて、CSV、SVNのクライアントも。慣れたら同じ使い勝手で全部いけるとしたら一番いいのかも。

【Gitti】 Mac専用。画面がいい感じ。
http://www.gittiapp.com/