« 2007年12月 | メイン | 2008年3月 »

2008年1月29日

CakePHPの単数形→複数形の処理はしっかりしていた

CakePHPを触る機会があったのだが、始めに疑問に思ったのが単数形→複数形の処理。Rails系のフレームワークに初めて触るので、見当がつかない。サンプルを見ても案の定「Users」「Items」「Messages」とか都合がよろしい単語しか書いてない。

例えば、「inquiry」など子音+yで終わる単語はyをiに置き換えてesとなり、「inquiries」となるはずだが、googleで「CakePHP 複数形 "ry" "ies"」と調べても出てこない。まさか「Inqurys」??

とりあえず書いてみるべ、ということで「InquiresController」というコントローラ作って、「Inquiry」というモデルを作ったら、ちゃんと動いた。公式マニュアルにも「大丈夫だぜ」と書いてあった。

4.5. (任意) カスタム Inflections 設定

イレギュラーなものや、多言語で英語の規則にないものも定義できるようだ。ふーん。

↓リファレンスとしておすすめ

CakePHP ポケットリファレンス (Pocket Reference)
株式会社ブルーオーシャン 岡田 佳典
技術評論社
売り上げランキング: 11515
おすすめ度の平均: 4.5
5 いい感じです。
4 cakePHPの時には是非
5 いま発売されているcake系書籍で一番良いです
2008年1月16日

integer世代最後の赤ちゃん

Flickrの写真IDが先月29日にintegerの許容範囲である2147483647を超えていました。

問題となるのはFlickr APIを利用したプログラムを書いていた人で、DBのカラムや変数をinteger型で保持していた人は、急に赤ちゃんの写真ばかり出てきてビックリしたかもしれません。

写真

自分もその一人で、とあるスクリプトの中で1箇所integer型を使っていて、赤ちゃんが出てきてしまいました。幸いテストサイトでしたが。発見したのは現在妊娠中の同僚だったのは、なんとも。

integer世代最後の赤ちゃんの写真にはコメントが沢山投稿されていますね。

2008年1月13日

eMarkerを捨てた時に思ったこと

Appleが米国においてiPhone/iPod touchの無線LAN機能を活用し、スターバックスで流れている曲をiTMSで購入できるサービスを開始したが、このサービス・端末を思い出した人はどのくらいいるのだろうか。

-当時のプレスリリース-
ラジオやテレビで気になった曲やCMをブックマーク
新たなサービス『eMarker』、首都圏にてサービス開始

eMarker

eMarkerは、ラジオやテレビで気になる曲が流れている時に端末のボタンを押すことによって時間を記憶させ、後でPCとUSBで接続すると専用ソフトがその時間帯に流れていた曲名一覧を教えてくれるサービスだった。その場で試聴ができたかどうか忘れてしまったが、CD購入は可能だった気がする。

テレビ・ラジオで流れている音楽のCDを素直に買うという時代。対応している放送局は多く、当時は画期的なサービスが始まったことに興奮したものだ。しかし結局あまり流行らなかった。

・端末をわざわざ持ち歩き、PCと接続するという面倒
 (PCを立ち上げるのも一苦労!)
・未成熟のeコマース

あたりが理由だろうか。

当然現在、同じようなサービスがあったら、携帯やiPodを端末として使うであるとか、LISMO!などと連携し携帯でその場で音楽が買えるなどの事業の「絵」が描ける。しかし当時はそのような環境は無かった--J-PhoneのJAVAアプリ版も出たようだが、オンラインで音楽を買う時代ではなかった。eMarkerの搭乗は時期尚早だったのかもしれない。

アップルは「音楽制空権」を取りにくるのか? -Life is beautiful-

こちらのエントリーでは、どこで流れていた音楽も買うことができるという事に対して「音楽制空権」という言葉を使っている。日本ではどうだろう。結局この分野もアップルが制するのか、携帯電話事業者が制するのか。

2008年1月 8日

エントリーに画像を挿入すると回り込みになる

MT4でエントリーに画像を挿入する際に、配置する位置を選ぶことができるのですが、右か左を選ぶと回り込み(float)になってしまい、単純1段落に1画像だけ置きたい場合、意図しない結果になってしまうことがあります。

特にWYSIWIGエディタを使わない場合が面倒で、画像の後にstyle="clear: both;"のようなタグを入れなければ、回り込みを解除できません。

一体どうなっているものかと仕組みについて調べてみると、まず画像を挿入するとimgタグがformで括られます。その理由は下記のサイトを参照。

The blog of H.Fujimoto:画像を挿入したときにformタグがつく理由

formはspanに置換され、imgタグのstyle属性で左右中央の位置が決められるようです。該当部分のソースを見てみると、MT/lib/MT/Asset/Image.pmにおいて

左位置



float: left;
margin: 0 20px 20px 0;

右位置



float: right;
margin: 0 0 20px 20px;

中央位置ならば



text-align: center;
display: block;
margin: 0 auto 20px;

というある意味微妙な実装になっています。おまけに勝手にマージンが決められているのも勘弁して欲しいですね。本来ならば、位置選択の段階でfloatにするかブロック要素にするのか選ばせてもらいたいものです。

左位置(ブロック)



display: block;

右位置(ブロック)



display: block;
text-align: left;
margin-left: auto;
margin-right:0;

という感じでしょうか。

がんばってこの部分のコードを書き換えてもいいのですが、推奨されない方法です。が、このためにプラグインを書くのも面倒な話です。MTはこういう決め打ち的なコードが多いですよね。