【戯れ言】花見OFFを来週末頃に開きたい

寒い冬もようやく終わりお花見シーズンになりましたので、軽~いOFF会でもどうかと思い提案します(笑)。
4/2頃都内では満開になりそうですので、その付近の夜、仕事が終わったあとにどこかに集まって缶ビール片手にIT話等で盛り上がれればと。気軽に集まってもらいたいのと運営の手間も無くしたいので、基本飲食物は各自好きなものを持ってきてもらって適当にやってもらう趣向です。

ただ、金曜日の夜(4/2)かなーと思っていたのですが、会社行事などで休日の方が都合がよい方もいらっしゃるみたいですので、いくつか候補立てすることにしました。都合の良い日程をコメント欄などでお知らせいただけますと幸いです(複数解答OK)。

  • 4/2(金) 20時頃~
  • 4/3(土)10時頃~
  • 4/3(土)17時頃~
  • 4/4(日)10時頃~
  • 4/4(日)17時頃~
  • 4/5(月) 20時頃~
  • その他

休日午前中からですと、花を見ながら開発とかも良いかもしれませんね。逆に午後からですと場所取りが難しいかもしれません。
また、CakePHP縛りはとりあえずしない方向ですので、お友達やご家族ご一緒にというのも大歓迎です。
あと場所については都内のどこかで。平日なら新宿か渋谷のどこかですかね。休日なら少し離れていても良いかもしれませんが。おすすめの場所がありましたらそれも教えていただけると助かります。

それでは宜しくお願いします!

【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を公開しました。リダイレクト処理の修正が不完全だったため、こちらは使わないようにしてください。

【プログラミング全般】githubでfork刺しっぱなしのリポジトリを更新する方法

時々、興味本位で他の方のプロジェクトにforkを刺したりするのですが、そのまま放置されていて知らない間に本家の方でバージョンが上がっていたりして、自分のリポジトリが古いままって事があります。gitの事を全く知らなかった頃、やり方が分からなくて結局removeしてしまったりしたのですが、やっと更新方法が分かったのでmemo書きです。

仮にhogeさんのfugaプロジェクトをgithub内でforkしたとしましょう。
そして、hogeさんがpushして、本家の方は最新版、ところが自分のfork刺したやつは古いまま、という状況です。
この場合、次のようにすることで最新版にすることが出来ます。

git pull git@github.com:hoge/fuga.git master
git push

まあ、よくよく考えてみればごく当たり前なのかもしれませんが(^^;;;。
というか、刺しっぱなしにしておかないで、改良してpull requestするようにしましょう!

【戯れ言】関東(東京)にIT技術者が集う「なんとかcafe」的なものを作りたい!

先日福岡遠征をした際に、「AIPカフェ」という施設にお邪魔をしました。IT技術者の交流の場として解放されているスペースで、イベントを開催したりいろんな事をやっている場所なんですが、ここが大変におもしろかったのです!!

東京には、こういった中心になって情報を発信できる施設がなく、勉強会とかもそれぞれが場所を見つけて運営したりしているし、また何かをリアルス ペースでアピールしたくてもイベント時でしかできなかったりで、日常的に行える場所がありません(もしかしたらあるのかもしれないけど)。
また、こういった場所があれば会社間で交流も生まれると思うし、仕事なんかが一緒に出来るかもしれない。気分転換に外で開発したくなっても電源やネット環 境に困ることが多いですが、このような施設があれば困ることはないでしょうし、また他の人の意見が聞けたりするだろうし、参考になる本とかも転がっていた ら最高です。

なので、こういった施設は凄く欲しい!
私は旧世代の人間というのもあって「ないものは作る」フラグが既に立っているのですが(笑)、でも財力も権力もありませんので、いざ自分一人でやるという のはちょっとできないのです。

こんな感じのところ(写真はZIMenuさんのところのやつです。詳しくは画像をクリック)

そこで、とりあえずきっかけ作りとして「関東(東京)になんとかcafeを作る」検討会みたいのをやってみたいのですがいかがでしょう?
まだ全くの初期段階で何も情報が無い状態ですが、できる事、難しいことなどの情報を集めて検討し、うまくいけば何らかの場所が生まれればと考えています。
日時等は決まっていませんが、どのくらいの方が興味あるのかが知りたいです。
もしご興味がある方がいらっしゃいましたら、コメント欄に何かご意見等いただけると嬉しいです。
また、検討会の会場を提供していただける方大募集です(^^;。

【追記】(2010/03/11)
google groupsを作りました。
興味ありましたらこちらにご参加ください(要承認)。

▼関東(東京)にIT技術者の集う「なんとかcafe」の設立検討会
http://groups.google.co.jp/group/tokyoitcafe?hl=ja

【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つだと思うのですが、いろいろなものを試してみたいと思います。

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

【CakePHP】使用しない方が良い・できないメソッド等の一覧

CakePHP1.3もRC1となり、いよいよ1.2からの移行を本気で考えた方が良い時期に差し掛かってきました。

さて、1.2から1.3になることで、いくつかの新機能が搭載されていく(つまりメソッドが増える)のですが、反対に無くなっていくものもあるので注意が必要です。
たまたまTwitterでこれに関連する話題があったので、ついでなので調べてみました。
1.2.6のソースコードに書かれている「推奨しない」機能は次の通りです。

■cache() (basics.php)
「Cache::write()」を使用します。

■&Set::get() (set.php)
Setは静的に使うことが推奨されています。
このためget()で設定値を入手しようとするとワーニングが出ます。

■Xml::compose() (xml.php)
Xml::toString()のラッピングです。

■Email::_lineLength (email.php)
「Email::lineLength」の方を使用します。

■Model::getDisplayField() (model.php)
「Model::displayField」を直接参照します。

■Model::findAll() (model.php)
「Model::find(‘all’)」を使用します。

■Model::findCount() (model.php)
「Model::find(‘count’)」を使用します。

■Model::findAllThreaded() (model.php)
「Model::find(‘threaded’)」を使用します。

■Model::findNeighbors() (model.php)
「Model::find(‘neighbors’)」を使用します。

■View::renderElement() (view.php)
「View::element()」のラッピングです。

■XmlHelper::addNs() (helpers/xml.php)
「$this->xml->addNamespace()」のラッピングです。
内部的にはXMLクラスのインスタンスが生成されています。
※1.3RC1もまだ変更無くそのま ま残っています。どのように変更されるかは不明です。

■XmlHelper::removeNs() (helpers/xml.php)
「$this->xml->removeGlobalNamespace()」のラッピングです。
内部的にはXMLクラスのインスタンスが生成されています。
※1.3RC1もまだ変更無くそのまま残っています。どのように変更されるかは不明です。

これらは全て、1.2.6以前のバージョンで既に代替方法があります
今のうちに直しておきましょう。

ちなみに1.3では、このほかにJavaScriptヘルパーに書いていた内容の一部がHtmlヘルパーに移動するなど、いくつかの仕様変更がありますので、1.2→1.3のマイグレーションには下記の情報を参考にしましょう。

▼The Cookbook:11.1 1.2から1.3への移行ガイド
http://book.cakephp.org/ja/view/1561/Migrating-from-CakePHP-1-2-to-1-3

【追記】(2010/03/02)
すみません。モデル内のメソッドで若干記載漏れがありました。

■Model::bind() (model.php)
Model::bindModel()を使用します。

■Model::remove() (model.php)
Model::delete()のラッピングです。
1.3-devからは、使用するとワーニングが出ます。

■Model::del() (model.php)
Model::delete()のラッピングです。
1.3-devからは、使用するとワーニングが出ます。

【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での実装経験が必要ですが)。
是非ご参加いただけますと幸いです。

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

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

【WordPress/CakePHP】福岡遠征Day2

福岡2日目です。
本日はWordCampFUKUOKA2010ということで、WordPressイベント初参戦なのですが、大変にためになったイベントでした!
まずは運営スタッフ様、スピーカーの皆様、それから参加された皆様、お疲れ様でした!
おそらく参加された方にとって、かなり場違い感たっぷりのレポートかもしれませんが、こういった視点もあるということでご了承いただけますと幸いです(^^;;;

さて、全体的な感想としては、福岡の皆さんは熱いな-みたいな(笑)。ノリ違いますね。盛り上がりかたがだいぶ違うというか。1日目の飲みでも感じたのですが、見ていて楽しいというか、こういう雰囲気大好きです。
イベントそのものの雰囲気もだいぶ違うというか、CakePHPのイベントはいかにもプログラマーチックな方がたくさん集まるのに対して、デザイナーチックな方が断然多そう。内容もかなり操作系の説明が多かったというか、ソースコードはあまりでないイベントでした。まあこれが普通なのかな(^^;。
会場は「西南大学」という大学の一角にあるコミュニティ施設の1Fをまるまる借りてやったという感じで、大学でやるのはなかなか良いなと思いました。でかいホールがあって、その中がメイン会場。周りにある多目的室2部屋で別セッションが行われていて、そのほか「ジーニアスバー」を「茶室」でやっていたらしいです。

会場の受付。この奥にメインホールがある。ちなみにメインホールに入るのに1000円かかり、その他は無料。フリーミアムだ(笑)

今回はかなりてんこ盛りの内容だったらしく、その結果昼開始を朝開始にし、さらに合計4会場にした背景があったそうですが、これについては見る側にとっては少し残念だったかも。見たい内容がかち合った場合にきついですね。私もイベントはどちらかというと開く側なのでいろいろやりたい気持ちは出てくるのですが、やはり的は絞った方が良いかなと思いました(でもこれに関しては難しい。スポンサーの関係とかもあるので…)。

私的に大ホームランだったというか、一番の収穫だったのは「Cacoo」というWebベースのコラボレーションツール。リアルタイムで図画を操作でき、それが全員に反映されるので、ホワイトボードがいらなくなる!

Cacooのコラボレーション画面。参加者の画面にリアルタイムで更新される

勉強会などでustでスライド等をon airすることが多いと思うのですが、スライドの内容がはっきりと分からなくて伝わりにくいところがあるので、こういったツールでみんなで見てもらった方が分かるかも。また、多会場でセッションしたりするのに、ホワイトボード的な使い方をすることでコミュニケーションがとれるのがイイ! 仕事とかで使えるかもしれませんね。

Cacooをサービスしているヌーラボの縣(あがた)さん。このツールが新たなコミュニケーションツールのスタンダードに発展するといいな

次のトピックとしては、コマースツール2本。
まず1つは「CS-Cart」という商用ツール。これは自分「WordPressベース」なものかと勘違いしていたのですが、中は完全のオリジナルアプリ。ただ「WordPress並にお手軽に設定ができる」、かなりサイト構築が簡単なツールで、基本的にアーカイブを丸ごと展開してインストーラを起動させ、少しの設定項目を入れるだけで動いちゃう系です。テンプレートは40くらい用意されていて、カスタムすることはもちろん(しかもwebベースで編集できるらしい)、アドオンでプログラム開発もできるらしい。某CUBEなツールでちょっと苦い経験をされた方には救世主になる(かもしれない)、かなり便利なものだと思います。
そしてLTで発表された「Welcart」というWordPressプラグイン。WordPressがショッピングサイトになる、すばらしいプラグインです。仕組みもおもしろくて、データベース・テーブルを新しく作ってその中にデータを別管理するのではなく、通常の記事データ内に情報を持っておくことで余分なデータを作らないらしいです。つまりDBやテーブルに依存させないでWordPress内で完結できる仕組みになっているので、何かと小回りがきくのではないかと。小規模向けには良い仕組みかもしれませんね。

この2つのツールは、内容的には同じベクトルなのですが、売り方(広め方)については180度違う点にも注目です。CS-Cartが「しっかりとした製品をお金を払って買ってもらう」のに対し、Welcartは「無料で幅広く使ってもらって認知度を高めたい」という方向で進んでいる点。前者はユーザ数の獲得が困難になり、後者は幅広く使ってもらうまでには金銭面(つまり維持するための費用を捻出する)で苦労する点。コマースツールは、どちらかというとニッチツールなので、数が稼げるかは分からないし、かといって有料は使ってもらうまでが大変なので、ここのところがうまく解決できるかがポイントになるんじゃないですかね。

どちらのサービス提供者の方にもお話を伺いましたが、私もCakeでショッピングツールを作りたいと思っている方の人間ですし(そういや「PHPで作る携帯サイト デベロッパーズガイド」でもショッピングツールを作っていましたね(笑))、もし何かできることがあったら協力したいなと思いました。とにかく現在、満足に使えるショッピングツールがないので(^^;。

その他、ジーニアスバーという交流スペースがあったのですが、その場所がなんと「茶室」で畳の部屋!
実は私たちが入ろうとしたときはすでに終わっていまして、無理矢理見せてもらったのですが(ゴメンナサイ)、おもしろいな-と思いました。CakePHPイベントも、懇親会とは別に交流スペースを常時開設するのも良いかもですね。前回のCakeMatsuriは昼食を会食形式にしましたが、アレも良かったですね。

そうだ、Cakeがらみの話題を書かないと。

まず、福岡ではBaserCMSはかなり盛り上がっています!
WordPressのイベントなのに、スピーカーの皆さんがプッシュしていたのはおもしろかったです(笑)。

例えばこちらは、CGFMの金内さん(@Garyuten)のセッション「サイト運営マニュアル」の風景。
人が通路にまであふれてしまい全然やっていることが分からなかったのですが、なんとかがんばって撮影しました。
懇親会ではなかなか話すタイミングがつかめなくて、帰り際にちょろっとしかできなかったのが大変に残念!

大人気のセッション風景。WordPressイベントなのにBaserCMSの文字が!(笑)

それから、ロリポップの中の人にも数人お話をさせていただきました。
ロリポといえば、Cakeの設置マニュアルが公開されているところで有名!
「なんかフレームワークのマニュアルを入れなければと思っていて、Cakeはまず入れた」的なことを話されていました(笑)。
ちなみに参加者の皆さんに配布されたものの中にロリポのサーバ3ヶ月無料お試しクーポンが入っていた!太っ腹!!(笑)
WordPressはなんと1行の設定と1クリックでインストールされるそうです。すごいよ!

最後に懇親会での出来事ですが…

ケーキ登場!
なんだか見覚えあるシーンですよ(笑)。

マクラケンさんに聞いたところ、CakePHPにインスパイあったそうです(笑)。
これは負けていられませんね!

というわけで、伝えきれなかったところがたくさんありすぎなのですが、とても有意義なイベントでした。
運営面もしっかりしていて、事故も特になく素晴らしかったです。
これだけの人数を回すのは大変だったと思いますが、関係者の皆様本当にお疲れ様でした!

私の方も、今後はWordPress関連でもいろいろやっていきたいです。
特にCakePHP + WordPressな何かを提供できれば。
ネタはありますので(つぶやいたので分かる人は分かると思う)、後はやるだけという感じですけど、ちょっと時間がない状況なので大変ですが。でも自分でも必要になってきているので急ぎたい…

というわけで2日目も無事に終了。
3日目はほぼ帰るのみなので記事はないと思いますが、まーとりあえず気をつけて帰ってきたいと思います。