【KtaiLibrary】ktailibrary.orgを公開!

かねてからやろうやろうと思って先延ばししていましたが、現在準備しているものがいい感じになってきましたので、それに合わせてやることにしました。
というわけで、「ktailibrary.org」をいよいよ公開します!

現在バグ報告は、当ブログのコメント欄がメインで使用されていますが、そろそろとても長くなってきたことと、情報の整理やオープン性が求められてきているのかな? ということで、まず手始めとしてBTSを公開することにしました。まだ何もない状態ですが、以後はこちらの方で報告いただけますと幸いです。

実は「ktailibrary.org」ドメインはず~っと前から取得はしてあったのですが、放置状態でした(^^;。ようやくお披露目できて良かったです。

また、サイト内を進んでいただきますと「おや?」と思うことがあるかもしれません。先日の「Ktai Library勉強会」に参加された皆様、もしくは福岡遠征で「プチOFF会」に参加された皆様でしたらもうお分かりですよね! まもなく発表できると思われる「バージョン0.3」に併せて、「ktai-dev」というプロジェクトも公開いたします。

これは、Ktai Libraryの開発環境も公開してしまおうというもので、つまりどういう事かと言いますと早い話が「Ktai Library開発を皆様にご協力いただこう」というわけです(^^;。いずれは「コアデベロッパー」的な方を募集したい所ですが、そこまでのプロジェクトではないかもしれないですしこちらも準備が出来ていませんのでまだ先の話ですが(いや、「我こそは」という方は大歓迎です)、githubでpull requestしていただきやすい形になっていますので、是非コード修正をご協力いただきたいです。

また開発環境は、つまるところKtai Libraryのインストール済みCakePHPのわけで、携帯サイト制作のテンプレートとしても利用できます。おそらく無設定で最も簡単な携帯対応ページが表示できると思いますので、これをベースに開発しても良いかもしれません。

なおKtai Libraryのバージョン0.3の詳細に関してはまた後日ということで。
こちらの方も是非ご期待ください。

【KtaiLibrary】バージョン0.2.3公開

緊急で申し訳ございませんが、0.2.3版をgithubにて公開します。
1日に2回バージョンアップが行われることになってしまい大変に申し訳ございません。

app_controller.php.ktai内のリダイレクト処理を、現在開発中の0.3から持ってきたのですが、誤って開発途中のコードを挿入してしまいました。これでも一応動くのですが、urlをarrayで渡した場合にエラーが出ます。

それ以外は変更がありませんので、0.2.2ではなくこちらをご利用いただきますようお願いします。

【KtaiLibrary】バージョン0.2.2公開

バージョン0.2.2を公開しました。
githubよりダウンロードできます。

今回は3つの不具合修正を施しました。

1つ目は、SoftBank携帯の新機種でアクセスした場合、エラーが出てしまう問題を対処しました。
これは、最新機種の機種情報がテーブルに存在しないためで、本来ならdefaultの設定を読みに行くのですが、SoftBankのテーブルにはデフォルトも存在していなかったためにエラーが発生していました。最新機種の情報を追加するとともに、デフォルトの情報も追加しました。

2つめは、最近のCakePHPのバージョンアップでsessionの挙動が変わってしまい、session定義のファイルを2度読みするようになったため、中で行っている関数定義で不具合が出る件を対処しました。関数部分は2度読みを行わない処理を入れました。

3つめは、かねてから問題の出ていたredirectを修正しました。これは次期バージョンの0.3で作成していたものを反映させたもので、ルーティング情報にあるカスタムの遷移と外部サイトを正しくリダイレクトできるようにしました。

0.3のリリースに合わせようかと思っていたのですが、深刻気味の3つの不具合を今回緊急でアップしました。既にライブラリをご使用の方は、少なくとも「lib3gk_machine.php」を本バージョンのものと差し替えてご使用いただきますようお願いします。

【追記】(2010/03/21)
バージョン0.2.3を公開しました。リダイレクト処理の修正が不完全だったため、こちらは使わないようにしてください。

【KtaiLibrary】Ktai Library勉強会楽しかった!

昨晩、「Ktai Library勉強会@関東」がE2さんにて行われました。
まずはお集まりいただいた皆様&スタッフの皆様どうもお疲れ様&ありがとうございました!

CakePHP関連のイベントは色々ありましたが、1冊の本がベースで、しかもそれに準じて開発していく形式のイベントは今回初めてだったため、大変におもしろかったです。なんというか、従来のカンファレンス形式は「聞くだけ」なのに対し、自分で手を動かす「ワークショップ」形式は達成感のようなものが得られる点、そして本をベースにすることにより、解説を聞くことで作業が中断してしまうことが無く自分主導で進捗が得られる点にメリットがあるかなーと感じました。逆に、開催中は大変に静かになるため、個人的には全く落ち着かないのですが(笑)。

誤植関係が良く見つかってまあお恥ずかしい限りですが、それとは別に、また例によって環境依存系のトラブルが多発しまして、進捗がなかなか得られなかった方もいらっしゃいました。そのトラブルとは、「Firefox3.6 & FireMobileSimulator1.1.10でdocomo・au表示の際にバイナリ絵文字が表示されない」というもので、Windows, Mac関係なしに出ていました。バイナリではなくて数値表現にすると出てくるため、ブラウザ内で表示トラブルだと思うのですが…

まあ2時間では限界があり、結局セットアップで終わってしまった方が多かったのではないかと思いますが、とりあえず皆さん絵文字が表示できていたみたいなのでホッと胸をなで下ろした感じです。

後半は懇親会というか、ピザ&ビール片手に雑談会でした。
CakePHP1.3の新機能系の話や、symfonyやCodeIgniterとCakeとの思想の違いのような話、Cakeの未来はどうなる?的な話等々で盛り上がりました。
そして、当方でざっくりと「Ktai Libraryの今後について」をご紹介。
詳細についてはまたブログの方で書かせていただきますが、現在開発を進めている0.3の話などをさせていただきました。
そしてkaz_29さんの方から、現在目下制作中の「ExtJSプラグイン」ですがこれが大変に素晴らしい!ブラウザOSっぽいことが出来たりするのですが、Cakeのアプリのユーザインターフェースががらりと変わりそうなイノベーションを感じる!

気がつけば終電を気にしなければならない時間まで経過してしまいましたが、最後に記念撮影をして終わりました。

参加メンバー全員で記念撮影

まあ運営側にはいくつか課題点はあるのですが、こういった勉強会スタイルはもっと数が増えたらいいなと思いました。普通にCakePHP勉強会をやっても「さて何を勉強しよう」みたいになっちゃうと思いますが、ある程度的が絞れるので。スタッフ間で「Model勉強会、とかみたいにしても十分需要あるかもね」みたいな話とかもしました。まあ今回もたくさんある手法の1つだと思うのですが、いろいろなものを試してみたいと思います。

まあそんなわけで次もあると思うので、今回参加された方、逃した方も是非宜しくお願いします。

【KtaiLibrary】「Ktai Library勉強会」が開催されます!

当方で執筆しました「PHPで作る携帯サイト デベロッパーズガイド」をお手本にCakePHPで携帯サイトを制作するための勉強会が、来週月曜日(3/8)の19:30から開催されます!

▼Ktai Library for cakephp 勉強会@関東やります
http://yashio.wordpress.com/2010/03/02/ktai-library-for-cakephp-%E5%8B%89%E5%BC%B7%E4%BC%9A%E9%96%A2%E6%9D%B1%E3%82%84%E3%82%8A%E3%81%BE%E3%81%99/

▼Ktai Library for cakephp 勉強会@関東(申し込みはこちら)
http://atnd.org/events/3413

私の方からは、今後のKtai Libraryについて少ししゃべらせていただきます。
また進行にかかわらず、もし本書もしくはKtai Library、その他全般で分からない点等がありましたらご質問いただいて構いません。

Cakeの勉強会で、書籍をベースに勉強会を開催するのは初めてだと思いますが、携帯に限らずCakePHPを始めて間もない初心者の方でもお気軽に参加できる内容だと思います(一応参加条件としてCakeでの実装経験が必要ですが)。
是非ご参加いただけますと幸いです。

なお、勉強会の性質上、当書籍が必要になります。
お持ちでない方は、是非こちらからお買い上げいただけますと幸いです(宣伝)。

アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。

【CakePHP】福岡遠征Day 1

ただいま福岡に滞在しています(笑)。

こちらで告知通り、BaserCMSの開発者である@ryuring さんとお会いしつつ、福岡組と飲み会をするということで、本日プチCakePHPOFF会in福岡を行いました。参加者は@ecworks_masap, @konsan, @ryuring, @nojimage, @kaburk, @k1Low(と同じ会社のSさん。twitter id聞くの忘れた!) の7名で行いました。

結論から言いまして、大変にためになったOFF会でした。
そして福岡は良いところだ!!(^o^)

飲み会の前に@ryuringさんとお話ししたのですが、その場所がAIP Cafeというところでして、ここが非常におもしろい! IT関連の仲間で交流できるスペースで、ノリ的にはギークハウスの共同生活しない版という感じなのですが(違ったらごめんなさい)、いろんなクリエイターさんが楽しそうに作業されたり打ち合わせされたりですごく良い雰囲気でした。なんでも古い鉄筋アパートっぽいところをそのままクリエイターたちに貸しているような物件らしくて、NPO?が運営しているらしいのですが、こういった空間の貸し出しってすごく良いですね!東京にこういったスペースがあったら!なんて思いました。
ちなみにBaserCMS勉強会が近日ここで開催されるらしいです。とても楽しみですね!参加ができないのが残念ですが(^^;

で、@ryuringさんと@konsanさんとはCake話やBaserCMS話、Ktai Library話、そして同業種の情報交換的なところを行った感じなのですが、まあお客さんとのやりとりが大変だねみたいな話とか、地域サイトの話とか、そういったのをしました。正直もっとじっくりお話ししたかったです(^^;。

時間になってしまったので、こちらの会場に移動。
福岡といえばもつ鍋らしいのですが、これがなかなかの美味!(値段も結構だと思いますが、出す価値あり!)
皆さんいっぱいKtai Libraryを使っていただいているみたいで、大感謝でした!

2つご注文を受けたのが、まず「設定いらずでインストールしただけで動く、簡単版のKtai Libraryが欲しいな」とのこと。しかもCake特化で。いろんな設定が細かくできるのはそれはそれで必要だけど、決定版みたいのがあれば、サイトの方をそれで動くように作れば、初心者とかでもやりやすいのでは?というかんじです。
そして「githubに開発版の環境があればみんなでメンテナンスできるんじゃないか?」という話。この辺は現在手間がかかっているのでなかなかできていないですが、いずれはやりたい内容ですね。

その他いろんな開発話で盛り上がり、店が閉まりかけるまでいたのですが、いよいよ店員の視線が厳しくなり始めたので店を出て移動。
屋台ラーメンで2次会に。

ラーメンを食べながら記念撮影。左からSさん、k1LoWさん、nojimageさん、ryuringさん、konsanさん、kaburkさん

ここでも追い出し圧力がかかるまで長い間しゃべっていました(笑)。
めちゃくちゃ楽しかった!

nojimageさんが電車がなくなるということで先に店を出ましたが、他の皆さんもなくなるタイミングだったのでここで解散することに。
私も夜少し作業したかったのと明日に備えたかったので先に帰りました。方向が同じだったkaburkさんと電車の中で楽しいお話をずっとしていました。
k1LoWさん、ryuringさん、konsanさんは「長い夜」に行かれました(笑)。これを書いている時点で、彼らが無事に帰宅したのか(konsanさんの場合は隣の部屋までたどり着いているのか)は分かりません(笑)。

そんな感じで1日目は大変に楽しいひとときでした。
またゆっくり来て、皆とお会いしたいです。
参加された皆さん、ありがとうございました!

さて、2日目はWordCampFUKUOKA2010です。
こちらも十分に楽しんで来たいです!

【CakePHP】フレームワークにおける「秩序」とは何なのだろう?

Twitterで少し議論になって、これってちょっと大事だよなと思ったことがあったので、言葉足らずだった部分についてもちょっと補足したりして記事として残しておこうと思います。
なお、これはあくまでも私の一個人としての「考え」であって、正解というわけではないと思います。ただ「こういった考え方もある」という点だけ伝わったら嬉しいです。

で、まあよくあるフレームワークにおける「MVC」の話なんですが、例えば「コントローラやモデルの中でヘルパーとか使ってもいいんじゃないか?」という点について。つまり、MVCで役割を分割しているのに、その領域を乗り越えて機能を実現することについてどうなのか、ということです。
CakePHPでも、ヘルパーの機能で汎用的に使いたい(そして実際に使える)機能があったり、逆にヘルパー内からモデルとかを呼び出して情報を取り出したりすることが出来るっちゃー出来ます。実際にコアヘルパーでもそのようなことをしている部分もあったりします。
正直言いまして、Cakeはかなり自由度が高く、やろうと思えば何でもできると思います。ちょっと不自由な点があっても、最悪コアコードをちょろっとextendsして置き換えるか書き換えるだけで、大抵のことは出来る。PHPなので、PHP的な書き方をすればそのような期待したことは出来ちゃうんですよね。たぶんPHPフレームワークで出来ちゃう方の部類。言い換えれば「ゆるい」です(笑)。ClassRegistoryの仕組みが出来てからは特に!(笑)

で、MVCの話なんですが「MVCを侵害することは何事だ!」「いや、使える技を使わないのはどうなんだろう」と対極の意見が生まれることもまた当然で、どちらも主張は大変によく分かります。MVCで機能をしっかり分けてコーディングをすることも大切なことですが、それによってとても面倒で回りくどい、あるいは無駄なコードを書かなければならなくなるけどちょっと工夫するだけで出来ちゃう場合もある。納期を守るために時間短縮は大切だし、そのためのフレームワークでもある。色々と意見はあると思います。

私の考えをシンプルに答えるのなら「どちらもアリだし大切」。MVCを守ることは大切だし、使える技は使っていく…これもまた重要だと思います。
しかし…私の考えはもしかしたらここから先は人と違うかもしれません。

2008年10月、「CakePHPカンファレンス東京」という大きなイベントが開催され、そこで当時CakePHPのプロジェクトマネージャであったGarett氏がCakePHPの理念について、このようにスピーチされました。

「State of Nature(ありのままに出来る自由)」
「Social Contract(ルール作り)」

CakePHPは自由に実現できるツールである。しかしそれだけでは無秩序になってしまい効率が悪い。ある程度のルール作りをしてそれに乗ってもらうことで、フレームワークの機能とかそういう部分以外に考えを注力してもらいたい…そのような意味が込められていると私は感じました。
この考え方に私は大賛成です。それは「以前に自作のフレームワークを作って業務を回していた」ことと「(現在も)オープンソース(?)なプロジェクトを公開している」点の二つのバックボーンが自分にあるからかもしれません。

まあ自作のフレームワークといってもそれはみすぼらしいもので、データを取得するクラスと自作のテンプレートシステムをくっつけてソースを分離しただけのもので、MVCとは言えないかもしれませんが。基本的に、一つ作ったプロジェクトをテンプレートにして使い回すことで、かなりの時間稼ぎが出来ていました。ただ、プロジェクトがこう佳境になってくると、脇が甘くなってくるというか、MVCなんて言っていられなくなってくるんですよね。データ取り出す部分でHTMLなんかも加工しちゃったりとか、何でもあり状態に。まあそうやって時間に間に合わせちゃうわけです。

まあ、この頃はほぼ一人でやっていて、それで回っちゃっていたので問題視することはなかったんですが、部下が一人つきまして、このなんちゃってフレームワークを勉強してもらうことに。
まあ分からないですよね。自分だったらたぶん分からないです。人の書いた、しかもぐちゃぐちゃに行き来するコードを追うことなんて(笑)。
でも、見よう見まねで頑張って書いてくれて、機能の役割なんかも分かってきつつあったみたいで、じゃあお願いということで別のプロジェクトを任せてみたんですけど…でも、やっぱり無秩序から生まれたものは無秩序でして、彼の書いたコードの何割かは自分の理解出来ないものに(笑)。別に彼が悪いんじゃないと思います。そういうなんちゃってフレームワークを書いた自分に責任があると思います。

時間をかけて覚えてくれたものなのに、できあがってみれば書いた本人しか理解の出来ないものになってしまうわけでして、これじゃあいけない! ということでオープンソースフレームワークを導入するに至った経緯があります。ただ、がっちがっちで不自由だらけのものでは小回りがきかなくて業務に差し支えがある場合もあるので、ある程度の自由さも検討し、またたまたまPHP4問題も当時ありまして、結局CakePHPしかない状況になったのですが(笑)。でも、もっともっと前にCakeがあったら違った世界になっていたかもしれません(こちらこちら を参照)。
こういった経緯もあって、秩序というのはとても大切に思っているわけでして、だからといってそうも言っていられない状況もあって、この二つと要領よくつきあっていくことが、フレームワークを効率的に便利に使っていくための大切な事なんじゃないかと思います。

ですが…途中でも書いたのですが「無秩序のものは無秩序を生む」。ここも大切だと思うんですよね。特に、初めてそれを触る人にそのやり方を見せて「何故そうなるのか」を理解しないままそれを「こうやって書くものだ」と覚えられてしまうことが大変に厄介で、そうなったらもうそれが主流になっちゃうんですよね。
何が言いたいのかというと、そういうルールから外れる裏技的な使い方は、出来るということは分かっていて使うこともアリっちゃーアリだけど、それを主流にしてはいけないんじゃないか、ということです。
主流にすることは結構簡単で、Cakeだったらブログなんかにやり方を書いちゃえば、あるいはフォーラムやBakeryで書いちゃえば、簡単にあっという間に広まっちゃうことも。センセーショナルな使い方なら、なお早いかもしれない!

でも、フレームワークの制作者側の立場としては、思想と反対のことを広めたくないはずです。Cakeに「ありのままの自由」「ルール作り」という2つのテーマ(ほかにも箇条書きであったのですが)があるのなら、使う側にもそれを十分に理解する必要があると思うのです。
Cake Software Foundationに肩入れしているような発言かもしれないのですが、それは自分もKtai Libraryというプロジェクトを公開しているからでして、「こういう風に使ってもらいたい」ってのはやっぱりあるからですね。今のところ想定外の使い方をされているところはないですけど(使いようもないのですが、強いて挙げればCake用と思われてしまっている点かな。一応汎用的に使えるのに(^^;;;)、間違った方向にプロジェクトが進んでしまって欲しくないと思いますから。Cakeの裏技って結構あると思うんですよね。でも、それが場合によっては、こういった情報がプロジェクトにとって「毒」になってしまうこともあるんじゃないかと。

なので、もし「こうしたらもっと便利に使える」という点があるのなら、それは合法的(?)に解決していくべきかなーと思います。つまり、もしその裏技が本当に他の開発で役に立つのなら、チケットなんかで「この機能はヘルパーだけど、汎用的に使えるからコアライブラリにした方が良い」とか、「この機能はヘルパーでも使いたい」とかフィードバックしていく方が。むしろ積極的に。でなければ、裏技は裏技にとどめておいて、分かる人だけの特権にしておいた方が、フレームワーク個体としてはいいものになっていくのではないかと思います。

個人的に、こういった「ゆるさ」というか書きたいことが書けちゃうCakePHPは醍醐味で、止められない理由の一つでもあるのですが(笑)。とてもいいツールだと思うので、これからもより良い方向で発展してくれることを願い、また「Cakeはとてもいいんだよ!」と啓蒙していきたいと思います。偉そうなことを言える立場ではないと思いますが、こんなにどっぷりはまってしまって、しかも本まで出してしまった以上、もうただ使っていくだけの一ユーザには戻れないかなーなんて(^^;;;。

なんか議論していた以上のことをついでに一気に書いてしまった感じなんですけど、自分の考えを再認識するいい機会でした。こういった議論が出来たことを感謝しています!

【CakePHP/KtaiLibrary】「PHPで作る携帯サイト デベロッパーズガイド」刊行します!

icon_ktai以前に予告していたものなのですが、なんとか予定日に入稿されたようですので早速告知させていただきます。

CakePHPに、当方で発表しています「Ktai Library」を組み合わせて携帯サイトを制作する方法を解説した「携帯サイト制作本」が、いよいよ12/23頃に書店に並ぶことになりました!

PHPで作る携帯サイトデベロッパーズガイド_表紙

【書名】
PHPで作る携帯サイト デベロッパーズガイド

【出版社名】
秀和システム

【著者名】
滝下 真玄

【価格】
3,000円(本体価格)

【発売日】
2009年12月23日頃

内容は、前半は携帯サイト制作に必要な情報をまとめ、後半は「携帯ショッピングサイト」を題材にして制作過程を順に追って説明していく、という感じです。
今まで「フレームワークを用いた携帯サイト制作」を扱った書籍がなかったので、かなり冒険的な内容と言えますが、これも「Ktai Libraryがあってこそ」実現できたのではないかと思います。
また、サイト制作の実録を掲載したことで、今までフレームワークそのものの使い方を解説した書籍が多かった中で、より実践的な参考書籍として出せたかと思います。

価格が高くなってしまったのは、ページ数が600ページ弱と大変に多くなってしまったことで単価が上がってしまいました(ゴメンナサイ)。が、Ktai Libraryの使い方については勿論のこと(リファレンスマニュアル収録)、AuthコンポーネントによるユーザログインやセキュリティコンポーネントCakeShell(CakeSchema含む)等のCake機能の活用、MediaPluginQdmailといった有用なツールの活用、そして郵便番号データベースによる住所の省入力・空メールメールマガジンといった携帯ならではの機能の実現など、盛りだくさんの内容になっているのではないかと思います。
どちらかというと「携帯サイト制作をしたい」あるいは「これからCakePHPを使っていきたい」という方向けに書いていますが、日頃Cakeを使っている方でも、携帯サイト制作の実例としてお読みいただける本になったかと思います。サンプルサイトは「管理側」「公開側」とPCサイト、携帯サイト両方を同時に作っていきますので、それぞれの作り方の違いについても理解しやすいかなーと思います。

ちなみに、タイトルが「PHPで~」となっているため、CakePHPカテゴリで書店に並ばれないかもしれません(帯には一応書いて あります)。PHPコーナー、もしくは携帯コーナーでとびきりぶ厚い本がありましたらそれですので(汗)、お手にとって、できればそのままレジにお持ちく ださい(笑)。

個人的には、初めての書籍化ということで伝えきれなかった点、至らない点もあるかと思いますが、「CakePHPで携帯サイトはバッチリいけるぜ!」あるいは「CakePHPってなかなか良いぜ!」が伝われば、大変に嬉しいです。また、本書にて携帯サイト制作がより身近になってくれれば幸いです。

【追記】(2009/12/19)
Amazonで購入できるようになりました。
下記からお求めになれます。

アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。

P1000035
紀伊國屋書店新宿本店の様子

【追記2】(2009/12/25)
紀伊国屋さんの店頭で並び始めているようです。
ネットショップでも購入できます。

■2009/12/25現在で「在庫有り」の店
札幌本店 仙台店 川越店 流山おおたかの森店 新宿本店
新宿南店 笹塚店 大手町ビル店 北千住マルイ店 ららぽーと豊洲店
横浜店 ららぽーと横浜店 梅田本店 本町店 京橋店
泉北店 堺北花田店 高槻店 加古川店 川西店
大津店 富山店 福井店 クレド岡山店

【追記3】(2009/12/25)
ジュンク堂池袋本店にも在庫があるようです。
ネットショップでも購入できます。

【追記4】(2009/12/26)
Amazonがようやく「在庫有り」になったようです。
発行部数の関係で、大手書店以外にはなかなか置かれないかもしれないそうです。

【追記5】(2010/2/19)
書評をいただきました。ありがとうございます!

▼[読書メモ]PHPで作る携帯サイトデベロッパーズガイド
http://go2childcare.blog95.fc2.com/blog-entry-403.html

【追記6】(2010/4/22)
書評をいただきました。ありがとうございます!
タイトルについては色々と大人の事情があった、とだけ言っておきます(笑)

▼余計なお世話かも知れないけれど、これタイトルで損してるんじゃね?「PHPで作る携帯サイトデベロッパーズガイド」
http://www.kantenna.com/info/2010/04/php_3.php#more

【CakePHP】CakeMatsuriTOKYO2009ワークショップお疲れ様でした!

CakeMatsuri2009ワークショップ参加の皆様、お疲れ様でした!
本当は詳細をレポートしたかったのですが、現在進行している案件の作業時間が惜しい状態ですので、簡単に書かせていただきます。

まず自分パートの部分の反省ですが、「Ktai Libraryが簡単に導入できる」点については何とか伝えられたかな? とは思っていますが、やはり時間が厳しかった点と、トークが淡々としていた部分についてはさらに改善したいと思います。でも、皆さんの反応について、内心はびくびくしていたのですが、熱心にセッションを聞き入ってくれていて、大変に嬉しかったです。

ちなみにですが、次回バージョンをなる早で出そうとは思っています(本当は間に合わせるつもりだったのですが…(^^;)。絵文字に関してカバーしきれなかった部分の改良をメインに、かなり大々的にコードをいじっています。このバージョンで、ようやく絵文字が不自由なく使えるようになってくれるのではないかと期待しています(作っている人間が言うのも何なんですが)。

実務者コースに関わっていたのでそちらの感想になってしまうのですが、とても内容が濃かったなーと。誰かおっしゃっていましたが、「TestCase祭り」はあっても良いなーと思いました(笑)。ビヘイビアやプラグインについては皆さんあまり使わない(もしくは使うところまでいっていない方も?)ところだと思うので、とても参考になる話だったですし、パフォーマンスチューニングやセキュリティについても、いわゆる「ワンランク上の~」的な内容だったと思います。ちなみにセキュリティのセッションの時は、自分が今やっている案件が正しく満たされているかとても不安になって、急いで試していたりとか(^^;;;
他のコースはチラ見でしたが、そちらもとてもためになりそうでした。特に英語コースは内容が凄かった!

全体的な感想なのですが、朝一のトラブルは本当に申し訳なかったと思います。一応google groupには全アーカイブやスライドは上がっていたのですが、それをしっかり告知できていればもっとトラブルはなかったですよね。次回へ向けて改善できればと思います。
また、今回のイベントは今までといろいろ事情が違うところでの開催だったのですが、皆さんが本当に楽しまれていたようで、その点については大変に嬉しかったです。私自身もカンファレンス形式のイベントしか経験したことがなかったので、今回のワークショップはとても新鮮でした。サポート役だったので直接は体験できませんでしたが、あの場はとても良かったです! ワークショップ形式のイベントはもっと増えると良いなーと思いました。

さて、本日はカンファレンスデーで、こちらもまた豪華な内容です(本当に参加したかった!)。本日参加される方も是非楽しんでいってください!

ぼくとわたしのCakePHP

CakeMatsuri2009CakeMatsuriリレーブログ第6弾ということで、kaz_29さんからバトンをいただきましたので、今回は私MASA-Pがちょろっと書かせていただきたいと思います。先の諸氏がとても素晴らしい記事を書かれていますのでプレッシャーかかっています(^^;。皆さんの満足いく記事になるかどうかは分かりませんが、ちょっと視点を変えたネタも織り交ぜていきたいと思います。

■CakePHPを使い始めた理由

私は初めてCakePHPに出会ったのは、約2年ほど前。1.2ベータ版が出始めた頃になります。おそらく青年団(といっても私は名ばかり参加ですが)の中では後発部隊です。PHP歴は結構古くて4.06ぐらいから使っていましたが、それまではピュアPHPメインで開発しており、オープンソースフレームワークにはあまり興味がなく、いわゆる「オレオレフレームワーク」をメインで使っていました。

CakePHPを使い始めた理由は大変に消極的なもので、結局はPHP4のサポート終了がきっかけです。勤務先ではPHP4ベースのオレオレフレームワークをメインで使っていましたが、未来がないことが分かったのでメンテナンスはやめて、なんか適当なフレームワークを使おうと思いました。正直開発の合間をぬってメンテナンスするのに疲れたので(^^;。でも、会社の事情があってPHP5なサーバを立てる予算がしばらく下りそうもなかったため、とりあえずPHP4で作っておいて、PHP5なサーバを立てた時にするっと移行出来るようなフレームワークじゃないと… ということで、ほぼ実質CakePHPしか選択肢がありませんでした(^^;。

他にも理由はありましたが、大変に長くなりますので こちらの記事 を参考にしてください。なれそめについて一応詳細に記してあります。

▼なぜCakePHPなのか?
http://blog.ecworks.jp/archives/5

また、CakePHPに対しての私の思いは、過去にこちらの記事に書かせていただいております。こちらも是非ご参考ください。

【戯れ言】あえてCakePHPをヨイショしてみる
http://blog.ecworks.jp/archives/654

■なぜ「Ktai Library」を開発・公開したのか?

皆さんが興味あるのはきっとこの辺でしょう。

実はKtai Libraryの前身は10年近く前から存在していまして、iモードやJskyなんかも出はじめちゃったりしたため、「じゃあ携帯サイトなんか作ってみたらどうだろうか?」ということで実験的に携帯サイトを作って運営し、その時に出来た副産物を流用しています。 この携帯サイト、今では大変に印象が悪いのですが、いわゆる「出会いサイト」を作りました(一応「系」ではないです)。サクラもいないとっても健全なサイトでした(^^;。個人でやっていた割に会員数もそこそこ集まり、一回登録した人とお会いしたことも(ぉ。
…と、余談はこれくらいにして、一応当時もPHPやperlで携帯サイトを作る本が発売し始めたりしていましたが、どれも「キャリアで振り分けて違うHTMLを表示する」というものでした(今でもそのように解説されている書籍はありますよね)。当初からこの手法は納得できなかったのです。「画像や絵文字は確かに違うけど、他はほとんど一緒じゃん」みたいな。
以来、少しずつライブラリを成長させ、今日に至る感じです。この成長させたものが現在の「lib3gk.php」です。

で、CakePHP向けにまとめたのは、CakePHPの勉強中に携帯案件が来たためで、ちょうど良いのでCakeで作ってみようと。はい、私も当時はバイブル的な存在であった「CakePHP(1.1)ガイドブック」を片手にやりました!(この本には大変に感謝しています)
でも、実際の携帯サイトとなるとこの本の内容では足りない。ページ制御はまあ良いとして、絵文字やら何やらはやはり携帯ライブラリじゃないと… というわけで、とりあえずコンポーネントとヘルパーを作ってライブラリを組み込み、案件をなんとかしのぎました。

しかし、案件が一段落して考える時間が出来たとき、ふと思ったんですよね。「Cakeで実用的な各キャリア対応携帯サイトを作る場合、他の人はどうしているんだろう?」と。
ググってみると、いくつか情報は出てきますが、みんな各種各様というか、それぞれが何かしらんを最初から作って使っているみたい。なんかそれは時間的にもったいないというのか、1つ標準的なライブラリがあれば、みんなそれを使って楽できるんじゃないか?と。出来るだけ簡単な導入で、余った時間に一杯でも多くコーヒーを飲んでもらえればと思い、とりあえずアーカイブ化して発表したのが今年の3月です。
細かくバージョンアップしてはいるものの、まだ満足いくライブラリにはなっていませんが、でも今でははてブでも100に迫るブックマーク数となり、今でも多くの方に注目されている点については嬉しく思っています。

■プロジェクトを公開するようになって変わったこと

私はCakePHP関連では3つのプロジェクトを公開しています。一つはPHP1.2用のSmartyView(こちらはkaz_29さんの方でプラグイン化をしているので、実質手を離れました)、一つは最近音沙汰のないTplcutter(大汗)、そしてKtai Libraryです。

今まで私は、プロジェクトを公開したことはなかったのですが、CakePHPを使ってなんとか過密している自分のタスクを乗り切れるようになったため、恩返しの意味も込めて公開しました。でもこの行為がとても自分の世界観を広げたというか、華麗なる一歩だったように思います。いろんな意見が寄せられてプロジェクト自身の精度が上がっていくというのもあるのですが、それ以上に、いろんな方とお話をする機会が増えました。そして、いろんな方と接していくうちに、「ああ、自分はまだまだなんだな」と。「公開=成果・終わり」ではなく「公開=始まり・勉強」じゃないかと最近よく思います。
そして自分の世界観をさらに変えた「イベントでの発表」も、プロジェクト公開をしなかったらなかったように思います。

■イベントで発表するようになって変わったこと

自分の最大の転機はやはり「CakePHPカンファレンス東京」で、TplcutterのLTをした時だと思います。この5分は自分の人生の何割かを確実に塗り替えたと思っています。
発表の出来は、表向きはおそらく歴代LTでも最低の部類でしょう。アンケート結果もとても痛かったです(笑)。でも、懇親会で色々な方に「自分にも覚えがある」「詳細に聞きたかった」「使ってみたい」と嬉しい感想が聞け、さらにプロジェクトマネージャー(もう「だった」になってしまいましたね)のgwoo氏に「クールだ」と言ってもらえてとても嬉しかったです(そして当時通訳していた堂園さんがこのことを教えてくれなかったら、gwoo氏と直接話そうと思わなかったです。大感謝です)。
私は人前で話すのが大変に苦手で、こういったことは出来るだけ避けて通りたい方でしたが、この日をきっかけに逆転しましたね。「伝えること」はとても楽しいです。そして伝えることでたくさんのリターンがあります。その中でも一番の収穫は、皆さんの反応を受け取ることで、自分自身もより成長できる点だと思います。

第4回の勉強会では、今度はLTではなく普通のセッションでKtai Libraryの話をしてほしいとyandodさんからオファーが来て、これまたどうしようという感じだったのですが、またとないチャンスだったので引き受けることに。前回のLTではいろいろなものを詰め込みすぎて結果早口になってしまい何が何だか分からない発表になっていたように思ったので、この点はまず改善しないとと思いがんばりましたが、やっぱり肩の力が入りすぎていて、つまらない発表だったように思います。伝えるということはとても難しい… でも、LTの時と違っているのは、この難しい部分が楽しくなってきたことですかね。そしてその後の懇親会では、LTの時以上にいろんな人とお話しする機会が得られました。

そして今回のCakeMatsuriでは、ワークショップのスピーカーとしての参加。Ktai Libraryの話を1時限まるまるすることになりました。今までの失敗を生かして、もう少しましな話が出来たらと思っています。大変に楽しみにしています。

■積極的に発信してみよう!

色々書いてしまいましたが、通して言いたいことは「自分から何かを発信すると、それ以上の体験が得られる」ということです。私の場合はプロジェクト公開とイベントでの発表で大きく世界観が変わりました(たぶん)。もし、なにか行き詰まりや限界を感じていたり、もっと違う世界を除いてみたかったりしたら、ただやるのではなく、それを誰かに見てもらう方が、何倍も効果があるのではないかと思います。そして、それが知識となるだけでなく、それ以上のいろいろなものも一緒にやってくると思います。
ちょっと余談なのですが、最近私はプログラミングの勉強はそっちのけで起業するための勉強をしているのですが、私がもっとも尊敬する起業家が書かれた本の中に「与えよ、さらば与えられん」という、聖書の一節をもじった文が紹介されているのですが、これは格言だなぁと思います。

また、ブログ等で文章として公開すること自体良いことだとは思いますが、声としてそれを生身の相手に伝えるのはそれ以上に効果があります。これは自分自身で体験したことなので間違いないと思います。どんなに些細なことでも構いませんから、是非LTで発表してみてはいかがでしょう? 幸いなことに、CakeMatsuriでまだ募集しているようです。今がチャンスですよ!(笑)

■そしてCakeMatsuriです!

今年もCakePHP最大のイベントがやってきます。「CakeMatsuri」が10/30, 31に開催されます。
今回はなんと2日間開催! しかもカンファレンスだけでなく、ワークショップも催されます。今までの勉強会はコースが1つしかありませんでしたが、今回は3つのコースから選択できますので、より自分の知りたい内容が選べて良いのではないかと思います。自分自身で体験しながら学べるのもワークショップならではですよね。
そしてカンファレンスの方も、今年もコアデベロッパーの方をお呼びしています。生の…いや、焼きたてほやほやのCake話が聞けると思いますので、参加して損はないと思います。
さらに、昼食やパーティが会場内で催されますので、今回のイベントはユーザー同士で話す機会が大変に多いと思います。「LTはまだ勇気が…」という方でも、いろいろな人とお話しすることで、いろんな事を得られると思いますので、大変に有意義なイベントになると思います。お時間あるようでしたら…いや、お時間作って是非是非ご参加を!

CakeMatsuri2009

次のリレーブログは、「CakePHPのおいしい食べ方」でおなじみの堂園さんです。どうぞお楽しみに!