page_adsence

2010年7月27日火曜日

doctrineで生成されるBase~.class.phpと~.class.phpと~Table.class.phpの棲み分けについて

doctrineでmodelを生成すると1つのテーブルに対して以下の3ファイルが生成されます。

例)テーブル名がhogeだった場合に作成されたモデルクラスの場合

base/BaseHoge.class.php
Hoge.class.php
HogeTable.class.php

これらのファイルにはそれぞれ違った役割があり、
それを意識することで綺麗なコードが書けるようになると思います。

BaseHoge.class.phpに関して
こちらはbuildするたびに書き換えられてしまうので、触らないようにしましょう。
もし修正してもbuild-modelのコマンドを実行した時点で新しいファイルに差し替わってしまいます。

HogeTable.class.phpに関して
このクラス内ではテーブルからレコードを取得する処理を記述する。
ようは、テーブルに対して行う処理に関しては全てここに記述する。

Hoge.class.phpに関して
HogeTable.class.phpで取得したレコードに対して処理を実行する場合はこちらに記述する。
つまり、テーブルにレコードを直接取得するような記述は書かない。
あくまでHogeTable.class.phpで取得してきた取得結果に対しての処理を記述するのがこっち。

以上が棲み分けになる。
なぜこのようになるかというのは、継承関係が以下のようになっているからってことみたいです。
・Doctrine_Record > sfDoctrineRecord > Hogeクラス
・Doctrine_Table > HogeTableクラス

・参考文献
http://www.kazu.tv/blog/archives/000954.html

2010年7月26日月曜日

ペースト時にvimのオートインデントを無効にする方法

vimにオートインデントをつけている場合、
複数行にわたるテキストをコピペすると大惨事になります。

これを回避するためにオートインデントをいちいちオフにするとかありえないので、
どうしたもんかと思っていましたが、ググってみたら簡単に出てきました。

やり方は以下の通り。
1.vimでファイルを開き、コマンドモードにしておく。
2.コマンドモードの状態で「:a」と入力してEnter。
3.入力できそうな雰囲気になったら、その状態でペーストしたい内容を貼り付け。
4.Escキーを押すと反映されます。

といった感じでオートインデントを無効にした状態でのペースト可能です。
ちなみにググった時に一緒に出てきたのですが、「:a」でもオートインデントが回避できない場合は
「:a!」と入力してやってみるといいみたいです。
vimのバージョンによって変わるみたいです。

2010年7月25日日曜日

symfonyでContent-Typeを指定する

Conotent-TypeにあるcharsetはApacheで設定したAddDefaultCharsetが基本的には設定されるが、
この部分がコメントアウトされている場合にはcharsetが指定されずにHTTPリクエストヘッダがやりとりされる。

Content-Type text/html

といった感じ。
が、文字化けを防ぐためには、Content-Type内にcharsetを指定しておくほうがいいと思う。
でも、Apacheで設定しまうと、1台のサーバで複数のサイトを運営していた場合に不都合がでる可能性がないとも言い切れない。
そこでsymfonyではview.ymlにContent-Typeが指定できるようになっているので、
これを利用することにする。
以下はview.ymlの記述を抜粋したものである。

default:
  http_metas:
    content-type: text/html

このようになっている部分を以下部分の記述を追加してやる。

default:
  http_metas:
    content-type: text/html; charset=sjis

この用にすればアプリケーションレベルで文字コードを設定することができる。

2010年7月24日土曜日

iphoneアプリの制限

iphoneアプリの価格と容量には制限があるみたいです。
値段は999ドル、容量は2GBが最大みたいです。
一応メモ

2010年7月23日金曜日

いったい何時になったら商品届くんだ、佐川・・・。

先日amazonでゲームを購入したのですが、amazonのアカウントサービスを確認すると、「お近くの配達店まで輸送中です。」と出るんですが、佐川急便のHPにあるお荷物問い合わせサービスで伝票番号を入力すると、「お問い合わせのデータは登録されておりません。」と出てくる。
これが数時間とかならいいんですが、すでに1日たったにも関わらず、まだ登録されない。
いったいいつになったら登録されるんでしょうか・・・。
ちなみに、同日に楽天で買ったサンダルは3時間くらいで登録されていました。
けど、大阪を夜10時過ぎにでて、翌日の15時過ぎても商品が届かないどころか、まだ配達店にも届いてないって・・・。
どういった配達の仕方をしているんでしょうかね。
買った商品は早く手元に欲しいといった客の心理を全く無視したものだと思います。
個人商店などはしょうがないですが、amazonはヤマト1本にして欲しいです。

追記
結局amazonのほうが先に到着し、伝票番号が登録されることはありませんでした・・・。
楽天のほうは19時くらいに到着しました。
大阪からここまで約20時間って・・・。

2010年7月20日火曜日

iphoneアプリについて調べてみた。

もしかしたらiphoneアプリを作ることになるかも知れないので調べてみた時のメモ。

1.iphoneアプリの開発は基本的にMacのXcodeで開発を行う必要がある。
なのでwindowsユーザーはMacへの買い替えを迫られる。

2.日本語が一切使われていないApple IDが必要になる。
(ただし、実機で検証やアプリの配布を考えていない人には必要ありません。ようは、Mac上のエミュレーターで動かしたいだけの人は必要ないということです。)
iphone Developer Programの登録の際、Apple IDアカウントに日本語が使われているとエラーになるので、新しく作るか、Appleに問い合わせるしかないみたいです。

3.開発は基本的にiphoneのエミュレーターを使って開発する。

4.iphone実機で検証する場合には「iphone Developer Program」に登録する必要があり、スタンダードプランで年間10800円する。

5.実機で検証する場合も、検証に使用する実機のデバイス情報を登録する必要があります。
1台ごとにデバイス情報を登録する必要があるので、
数台にインストールしたい場合などはこの作業を繰り返し行う必要があります。

ざっと調べてみた感想を書くと、「めんどくさい」の一言に尽きる。
僕みたいに日本語Onlyの開発者にとっては敷居が高い。
とりあえすググれば問題解決できる程度に資料があるからまだいいけど・・・。


参考ページ
iphoneアプリの開発から販売まで
Mac未経験からのiphoneアプリ開発→申請できるようになるまでの流れ

2010年7月19日月曜日

iphone4はやっぱり早い

しばらく使ってみてやっぱり早いって再度実感しました。
特に速度の違いを実感できたのはGoodReaderでpdfファイルを読み込んだ時でした。
3Gの場合は1ページ読み込むのに4,5秒かかってましたが、4の場合は1秒かからないくらいで表示されます。
画面も縦か横でロックできるようになったし、
GoogleMapもコンパスがついたおかげで道に迷う心配もありません。
これからも色々と使い倒していきたいと思います。

2010年7月16日金曜日

iphone4が来た!

予約開始からほぼ1ヶ月。
長かったですが、ようやく手に入りました!
とりあえず速攻でケースを買いに行って、これから3Gから4へと環境を移行しました。
iphone4すげー早い!!
いやー、ホントにサクサク動きますね。
goodreaderで書籍読んだりしてたんですけど、1ページのロードにかかる時間が全然違う。
ハンパねぇ~。
これからちょっとずついじっていきたいと思います。

あと、使えなくなったiphoneはipodとして使おうかなと思ってます。
au携帯とiphone4とiphone3G。
荷物がまた増えました。

2010年7月15日木曜日

クリップボード拡張アプリの落とし穴

PCを再インストールしてから入れてなかったクリップボード拡張アプリを久々に入れてみた。
今回入れたのはCLCLというアプリ。
スタートメニューに入れて常時起動している状態にしていた。

で、今回ハマったのはリモートデスクトップ上の大容量のファイルをコピーする場合、
コピーするのにやたら時間がかかるということでした。
最初は何でだかさっぱりわからなかったんですが、リモートデスクトップ上の大容量のファイルをカットもしくはコピーすると
「貼り付け情報を準備しています。」
と出てきて200分とかでてきたりした。
なんでこんなに時間がかかんだ?って謎だったんですが、自分の環境に新しく追加したものといえばCLCL位しかないしってことで、CLCLを終了させてみた。
そしたらあっという間にコピペできました。

リモートデスクトップ上のファイルをコピペした場合でも、
接続元のほうのクリップボード使ってるみたいだから、それが大容量でこんなになったのかとも思ったのですが、
であれば、CLCLは関係ないってことになる。
でもそんなことはないはずなので、原因は本来のクリップボード+CLCLのクリップボードにコピーしてるから倍以上の時間がかかってるんじゃないかと思われる。
テキストだけ履歴に入ればいい気がするので、それ以外は履歴に入れないようにしようかな。

iphone4入荷の連絡がついに来た!!

本日16時半頃にようやくソフトバンクショップから連絡が来て、
明日の13時以降に入荷が確定したみたいです。
あー、本当に長かった・・・。
予約一時停止する18日の16時頃に予約して、まさか1ヶ月近く待たされることになるとは。
いつ来るのか気になって気になって、発売日以降毎日2chのiphoneスレを確認してしまいましたよ。
普段2chなんて全くみないのに。

手に入るまでに時間がかかった分、色々と聞きたくないような情報まで伝わってきましたね。
接着剤が乾いてないから液晶が黄ばんでるとか、カメラで写真をとると中心部分が青くなるとか。
液晶の黄ばみは時間が解決してくれるみたいですし、写真に関しても実は普通の携帯の場合でもあるみたいです。
しかも青くなる条件として画面一杯の白い写真を撮ると、画像を綺麗にするために青丸現象が発生するとか。
まぁ特定の条件下だし、これに関してはソフトウェア側の問題っぽいので、後からの対応でもいいかな。
やはり一番の問題はアンテナ問題ですね。いったいどうなるんでしょう?
17日(現地時間だと16日)にappleが会見開くみたいだけど、どんな内容の話になるんだか・・・。
もしリコールするって話になったらまた1ヶ月位待たされることになりそうだし、
かといってそのままの状態でホントに大丈夫なのかって感じではある。
ケースに入れて使えば問題ないとの記事がいくつか書かれているし、
友達が一足先にiphone4手に入れて使ってたけど、そんなに気にしてなかったし・・・。
大丈夫だと願いたいです。

まぁなんにせよすぐにケースを買わねば!