【CakePHP】CakeMatsuriTokyo2009スケジュール発表!…あれれっ!?

CakeMatsuri2009CakeMatsuriTokyo2009のイベントスケジュールが発表されました!

いや~どれも魅力的な内容ですね~ なんて見ていると、なんか見慣れた名前が!?
あれっ…MASA-P??????

そうなんです。なんとワークショップ(中・上級者向け)にて、講義をすることになりました。
午後の小一時間、「CakePHPでの携帯対応」について解説をさせていただきます。

内容についてはまだお楽しみ(というか現在検討中)なんですけど、○○を題材に、○○を使った○○なんかも解説しちゃったり出来たらいいなと思っています。
ちなみに、この頃には次バージョンのKtai Libraryが出ていると思います(これに関しては別記事で)ので、最新の携帯対応技術が紹介できると思います。【追記】ちょっと間に合いそうにないので延期します(2009/10/11)
そして… 今まで先延ばしにしていましたけど、現在取り組んでいる○○なんかもいよいよ正式に発表できたり??

平日開催でちょっと来にくいイベントとは思うのですが、私の時限はともかくとしてとても魅力的な内容ですので是非参加してみてください!

【KtaiLibrary】携帯向けCSS機能の実装(とりあえず)

icon_ktai

最近更新頻度が増えているKtai Libraryですが、今回は新機能を実装しました。

何かと敬遠されていがちなcssですが、まあ理由はアレなんですよね。

「docomoではインラインでの記述しかできない」

つまり、divやらなんやらに「style=”~”」というように、毎度書かなければ行けなくて、大変に面倒なのです。
手で埋め込むとなると結構な作業量になり、また修正も入れにくいです。

そこで、コントローラに配置できる「var $ktai」パラメータ内にインラインで利用するcssを連想配列で列挙しておくことで、ビューの中でそれを呼び出せるようにしました。これで擬似的に、class指定のようなことができるようになります。

具体的に利用方法を書きますと…

まず、コントローラ内にktaiプロパティを作成します。
app_controllerに配置するのが簡単です。

app/app_controller.php


var $ktai = array(
  ~
  'style' => array(
    'test_style' => 'text-align:center;font-size:x-small;', //例えばセンタリングと文字サイズ指定
  ),
);

ビューでは、次のように記述します。

app/foo/index.ctp


<div style="<?php $ktai->style('test_style'); ?>">てすとです~</div>

こうすることで、とりあえずどのキャリア(ブラウザ)でもCSSが適用できるようになります。
本当に最小限の機能で、本来ならcssファイルを持ってきて適用するとか、勝手にdivのclassを探し出して置き換えるとか、そういったことができるのかもしれませんが、ちょっと今の自分にはこれが精一杯ですし、結局のところ完全にclassやidを置き換えることはできないわけで、別物と思って使っていただく方がよろしいかと思います。

ちなみに、詳細なテストやドキュメント修正、アーカイブ化はちょっとできませんので、とりあえず使ってみたい方はgithubのリポジトリから落としてきてくださいませ。icon_ktai

最近更新頻度が増えているKtai Libraryですが、今回は新機能を実装しました。

何かと敬遠されていがちなcssですが、まあ理由はアレなんですよね。

「docomoではインラインでの記述しかできない」

つまり、divやらなんやらに「style=”~”」というように、毎度書かなければ行けなくて、大変に面倒なのです。
手で埋め込むとなると結構な作業量になり、また修正も入れにくいです。

そこで、コントローラに配置できる「var $ktai」パラメータ内にインラインで利用するcssを連想配列で列挙しておくことで、ビューの中でそれを呼び出せるようにしました。これで擬似的に、class指定のようなことができるようになります。

具体的に利用方法を書きますと…

まず、コントローラ内にktaiプロパティを作成します。
app_controllerに配置するのが簡単です。

app/app_controller.php


var $ktai = array(
~
'style' => array(
'test_style' => 'text-align:center;font-size:x-small;', //例えばセンタリングと文字サイズ指定
),
);

ビューでは、次のように記述します。

app/foo/index.ctp


<div style="<?php $ktai->style('test_style'); ?>">てすとです~</div>

こうすることで、とりあえずどのキャリア(ブラウザ)でもCSSが適用できるようになります。
本当に最小限の機能で、本来ならcssファイルを持ってきて適用するとか、勝手にdivのclassを探し出して置き換えるとか、そういったことができるのかもしれませんが、ちょっと今の自分にはこれが精一杯ですし、結局のところ完全にclassやidを置き換えることはできないわけで、別物と思って使っていただく方がよろしいかと思います。

ちなみに、詳細なテストやドキュメント修正、アーカイブ化はちょっとできませんので、とりあえず使ってみたい方はgithubのリポジトリから落としてきてくださいませ。

【KtaiLibrary】githubにて開発ソースコードを公開!

icon_ktai前々からやりたかった、開発コード公開を試しにしてみました。
githubにて、現状の最新ソースをダウンロードできます。

▼github : MASA-P / KtaiLibrary
http://github.com/MASA-P/KtaiLibrary/tree/master

自分も実はgitを使うのが初めてでして、きっかけとしてはgit習得目的があるんですけど(笑)。
ただ、今後のKtaiLibraryの方向性として、完全オープンなプロジェクトとしてやっていきたいと思っていますので、まーその先取りも兼ねています。
もし修正していただける奇特な方がいらっしゃいましたら、是非フォークを刺していただいて、pull requestしていただけますと幸いです(でも反映させる方法がまだわかりません。勉強しておきます…)。

【KtaiLibrary】SB携帯で絵文字が文字化けする不具合

icon_ktaiSB携帯で$ktai->emoji()等で表示する際に一部絵文字で文字化けすることが判明しました。おそらく、過去発表しました全バージョンで影響が出ます。

対象になるコードは「lib3gk_emoji.php」で、対象絵文字のテーブルで3行目と4行目がひっくり返っている箇所がありました。もう少し詳しく書きますと、3行目はSBのwebコードが入っているのですが、空だと絵文字画像もしくは文字を表示します。そこにSJISの全角空白が登録されているためで、その空白は本来4行目にくるものでした。

修正版は早急に上げなくてはなりませんが、緊急的な対処方法として、全角空白をコード内で検索していただき、3行目に来ている場合に4行目と入れ替えてください。

具体的にはこんな感じになっています。


array(                        //117
array(0xf97e, 0xe6da),
array(0xf779, 0xe55d, 0xf079, 0x775a, 0xec79),
' ',   //←これは4行目に来るべき空白
'',
'enter',
),

array(                        //117
array(0xf97e, 0xe6da),
array(0xf779, 0xe55d, 0xf079, 0x775a, 0xec79),
'',
' ',  //←このように変更
'enter',
),

不具合が見つかり申し訳ございませんが、もしKtai Libraryをお使いの方は対策をお願いいたします。

なお、少し関係ありませんが、できるだけ迅速な修正ができるよう、近日中にgithubにて公開を検討しています。
また、プラグイン化(1.3向け)等も検討段階に入っています。おそらくGoされた場合は別プロジェクトとしてしばらくは平行して公開すると思います。

【CakePHP】いっぱいいっぱいなのでまとめ書き

cake-logoしばらく更新が止まってしまい申し訳ございません。
もういろいろといっぱいいっぱいで、全部処理が止まっています。
仕方がないのでまとめ書きを。

「第一回CakePHPオフ会」について

まず、今更になってしまいましたが、先日の「第一回CakePHPオフ会」ですが、大変に盛況でした。
当日のレポートを詳しく書かないといけないと思っているのですが、やっている暇が全くありません。
一応、会場の様子は画像に収めていますので、解説なしで公開いたします。
ご参加の皆さん、それからcakephperさんkaz_29さん、お疲れ様でした。

▼「第一回CakePHPオフ会」の様子
http://picasaweb.google.co.jp/ecwmasap/1CakePHP#

「すごいぞ!! Media Plugin」のスライド公開について

申し訳ございませんが、オフ会で発表しましたスライドも公開している暇がありません。
大した内容ではありませんのであまり期待はしないでもらいたいのですが、月末ぐらいに準備したいと思います。

「SmartyView」の新バージョンについて

それから、SmartyViewなのですが、新バージョンが出来ています。
公開したいのですが、上げている暇がないです。
また、kaz_29さんが「SmartyView plugin」「SmartyDBView plugin」なるものを準備しておりまして、今後こちらの方で公開させていただく予定です。一応窓口はgithubになる予定です。
たぶん近日中に準備が出来るんじゃないかと。
ちなみに、オーバーライド部分のソースを1.2.4に合わせただけで、Stable版ならどれでも動くと思います。

「Ktai Library」について

ちょっとまだ開発が止まっています。
バイナリ問題をなんとかしたいのと、携帯の新機種情報を加えたいのと、絵文字変換を強化したいのがあるのですが、ちょっと手つかずです。

ちなみに、携帯関連については、今後少し動きがある予定です。
今必死に、それに向けて作業しているのですが…
こちらの情報も、そのうちに。

その他

いくつか面白いTipsがあるのでまとめたいのですが、やっている暇がないです。
また、CakeSchemaは結構便利なので、そのまとめなんかもやりたいのですが…
ちょっと公開は後回しになります。

時間がない中で唯一やったのが、Amazon EC2のAPIが変わってしまうので、急いでWPプラグインを変更したことぐらいです(今頃)。本当は「連想くん」も変更しないといけないのですが、こちらはもうスルーします。

他にもいろいろと伝えたいことはあるのですが、本当に、いろいろごめんなさいです。

【KtaiLibrary】ちょっと開発はストップしています

icon_ktai現在0.2.0RC1として公開していますKtai Libraryですが、ちょっといろいろと忙しくて開発の方を中断している状態です。正式版を待たれている方もいらっしゃるかもしれませんが、ちょっとお時間がかかるかもしれませんので、RC1をお使いになることを一応オススメさせていただきます。申し訳ないです。

ちなみにKtai Libraryがらみでは、いくつか水面下で進行しているものがあります。

一つは決定事項がありますが、これはちょっとトップシークレットでして(笑)。
もう少ししましたら告知させていただきます。というかまだ全然出来ていないので(^^;。

それから来週、とある方にKtai Libraryをご説明する機会があり、これがどういう話の流れになるのかは分からないのですが、特定に対してKtai Library単品でご説明したりお話を伺うのは今回初めてですので大変に楽しみにしております。

あとは、これは皆さんに直接関係があるかもしれませんが、Ktai Libraryを快適に使っていただくための「外部ツール」を現在企画しております。現在技術検証段階ですのでそれ次第になりますけど、携帯サイト開発に無くてはならないものだと思いますので、おそらくKtai Libraryの価値が格段に高まるかと。それくらい価値のあるツールであると考えています。こちらも是非お楽しみに。

その他、ちょっともやっとしているものがあり、これをどうしようかと悩んでいるところがあります。今後のKtai Libraryの方針に左右されるところがあり、かなり慎重にいきたい反面、基本的に「Ktai Libraryは私一人で作っているものではない」気持ちのため、出来ればそうしていきたい…そういった、技術的というものではなくコンセプト的なところでの課題点なのですが。でも、最終的には利用される皆さんが満足できるような方向で行きたいと考えています。
あ、ちなみに有料化するとか、どこかの企業の管轄になるとか、そういった話ではないのでご安心を。

【KtaiLibrary】テストサイトでEZwebの場合、セッション値が変わらない件の修正

icon_ktaiKtai Libraryのテストサイトで、EZwebの場合、セッションページの値がちっとも変化しない不具合があったのですが、今更ですけど修正をしました。

携帯サイトを製作されている皆様はお分かりかと思うのですが、ただ単に「ページがキャッシュされてしまい同じページが表示されているだけ」です。
サイト上の問題ですので、セッションそのものの動作については問題ないと思いますので、特にライブラリの変更は発生していません。EzWebな方から、セッションがらみで結構「いいえ」をいただいていたのですが、実はこういったオチでした。申し訳ございませんでした。

ちなみに対処方法はこんな感じです。


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<!-- ↓↓↓追加ここから↓↓↓ -->
<?php if($ktai->is_ezweb()){ ?>
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="-1">
<?php } ?>
<!-- ↑↑↑追加ここまで↑↑↑ -->

また、お分かりかと思いますが、一度キャッシュ対処なしでアクセスしてしまうと、いくら対処してもしばらくはキャッシュが効いたままかと思いますのでご注意を。

【KtaiLibrary】AU携帯を新規契約しちゃった…

icon_ktaiいずれ必要になりそうだとの判断で、思い切ってau携帯を新規で契約しました。
CA001なんですけど、シンプル新規一括0円だったので(笑)。
SH001と迷ったんですが、一括1万だったので、まあどうせ実機テスト用なのでムダなお金はかけないということで。

店員さんにいろいろ聞いたのですが、「au BOX」の対応の可否でベースバンドあたりが違うらしいですね。au BOXに対応している携帯は新型らしくて、スピードも高速とのこと。それに伴い「KCP+」という共通プラットホームを使用している点も(いや、順番が逆なのかな?)。一応標準的な機能を持った端末ということで購入するつもりだったのですが、これから主流になる最低限の機能として押さえておいた方が良いかなと思って本機にした次第です。

まあ、何で新規契約をしようと考えていたかというと、不具合報告として先日挙げられた件(SDK6.2kで絵文字が化ける件)を実機で確認したかったためです。純正シミュレータなので本来はたのシミュレータよりも正しく動くはずなのですが、それにしても動きがおかしいので…
で、早速チェックしてみたのですが…実機は問題ないみたいですね。
まあ、これでライブラリのチェックをもう少し厳密に出来そうなので、不安点少なくライブラリの公開が出来そうです。

まあ、auを契約した代わりに、iPhoneの契約を変更して他の端末に回しました(実質解約)。iPhoneアプリを作るつもりで買いましたが、そっちをやっている暇は全くないので(^^;。
とりあえず普通にiPodTouch同等で使えるので、まあいいかなと。試していませんがwifi経由ならライブラリのチェックも出来るでしょうし。

あとはdocomo携帯ですね。
新型をどうやって入手しようかと。
白ロム経由かなぁ…
まあそれはもう少し先の話ですね。

【KtaiLibrary】0.2.0RC1版公開!

icon_ktaiお待たせいたしました。「Ktai Library」の最新バージョンである0.2.0RC1版を公開いたします。
本バージョンで、0.1.0版で発生していました大きな不具合が解消されていると思います。
上記メニュー「Ktai Library for CakePHP1.2」からダウンロード可能です。

先のご案内通り、今回から正式バージョンの公開前に「リリース候補版」として公開させていただくことにしました。今までの機能が安定してきたことと、目に見えない部分をいち早く試していただいて、何か問題がありましたらすぐにご連絡いただくことで、少しでも良いものを使っていただこう、というのが今回の趣旨です。

今回は2桁目の番号をインクリメントしています。機能的にはそれほど変化はないように見えるかもしれませんが、ソースをご覧いただくとお分かりになるかと思いますが、構造が大きく変化しております。とはいえ、基本的には丸ごと入れ替えていただくだけで大丈夫かと思いますのでご安心ください。

今回大変だった点は、何と言っても「URL処理」です。CakePHPでお使いの場合に、1つのドメインでいろいろ置いている人向けに、URLをしっかりRouter::url()に通すようにしました。lib3gkで無理矢理呼び出すために、「コールバック関数」を駆使しています。もう少し良い実装方法があるかもしれませんが、とりあえず許してください。基本的に「他のプラットホームでも動く」様に作っていますので、そもそも無理があるのかもしれませんけど… 先のバージョンで見直していきたいと思います。

とりあえず公開が先とのことで、見送った新機能があります。その辺は後のお楽しみということで(^^;;;。