【Tplcutter】タグ仕様を決定!

先ほど某所にある「びっくりドンキー」にて、チーズバーグディッシュ300gを食いながらTplcutterのタグ仕様を決定してきました。

簡単に、今回搭載する機能概要を挙げますと…

  • レイアウトの定義(ファイルへ書き出し/メモリ記憶/破棄。各ビューにコピー)
  • レイアウトの呼び出し(メモリ記憶から/ファイルから。各ビューにコピー。新機能!)
  • ヘッダ/フッタの定義(レイアウトを分離したい場合に使用。各ビューにコピー。新機能!)
  • ヘッダ・フッタの呼び出し(メモリ記憶から/ファイルから。各ビューにコピー。新機能!)
  • ビューの定義
  • エレメントの定義
  • ピースの定義(範囲指定をメモリに記憶。0.2.0からの機能)
  • 文字列の定義(defineライクなメモリ記憶。新機能!)
  • メモリ記憶から書き出し(タグを置換/範囲指定を置換)
  • 領域消去(新機能!)

の機能を(タグ機能として)実装します。

更に、今まで放置状態だったCSSファイルやjsファイルに関しても今回メスを入れます。
今まではCSSやjsはTplcutterの処理対象外でしたが、0.3.0からは一部タグ機能(ピースなどのコピー置換機能など)についての処理を行います。また、Tplcutterタグは基本的にHTMLのコメントタグを利用したもののため、CSS/js内では使用不可能でしたが、該当タグについては「/* ~ */」や「//」も使えるようになります。これによって、CSS/jsファイル内で可変したかった値や、htmlのインライン内、PHPスクリプト内での置換をデザインツールで編集を損なうことなく表現することが出来るようになります。

今回の目玉は、何と言っても「コピー・置換機能」を「CSSやjs内でも使用できる」点ですかね。
「可変したい部分だけど編集用にダミー値を持たせたい」場合に本機能が大活躍します。
以前の記事でも書きましたが、今回のバージョンのテーマは「革命」です。
名ばかりでない「超便利!!」なツールを提供できるよう、頑張りたいと思います。

ちなみに、設定関連についてはこれから練るのですが、おそらく若干の変更はあるものの、こちらについては現状とあまり変わらないものになるかと思います。

【Tplcutter】次バージョンはいろいろな意味で「革命的」

仕事が忙しすぎていて手つかずだったのですが、そうも言っていられないため、Tplcutterの次バージョンについて現在仕様を練っているところです。
次バージョンのバージョンコードは0.3.0の予定ですが、一気にメジャーバージョンを0から2とかに引き上げてもいいような、「革命的」なものになりそうです。

今回のバージョンアップは、一つ目標となるものがあります。それは「WordPressのテーマをTplcutterで作れるようにする」ことです。
WordPressのテーマ(テンプレート)は、CakePHPと似ていてPHPコードベースなのですが、ヘッダとフッタが別ファイルに分かれているタイプで、現在のTplcutterでは生成が出来ません。また、これはテーマの作り方次第なのかもしれませんが、デフォルトのテーマでCSS部分をのパラメータをプログラムで可変しているところがあり、これがDreamweaverなどのデザインツールで編集しにくくしています。
このブログのデザインを変更したいというのもあるのですが、今後の業務としてWordPressを用いた案件を考えていまして、ちょっといろいろ試していたのですが、あまりにもテーマ編集が難しくて、このままではうまくいかないと感じたため、Tplcutterの出番登場という訳です。
この2点を最低でも何とか出来るような仕組みを考えているのですが、最終的にこれが解決出来るような仕組みを実装するとかなりの自由度が出ることになり、今までのTplcutterとは比べものにならないくらい便利なものになるかと思います。

とりあえずCakePHPカンファレンスで紹介してTplcutterの単語はCakeの世界(日本限定)ではそれなりに知られるようになったかもしれませんが、出来ればほかのシステムでも使って欲しいので、WordPressユーザにも広められれば私的には嬉しいかなと思います。できればほかのシステムも一通り試して、それにあった仕組みを追加していければ、もっと早く、ほかのユーザ様にも広めていけるのですが、なにぶん時間が足りないものですから、自分の世界の範囲内でしか出来ないことについては申し訳なく思っています。

そして、現在ご利用していただいているユーザ様にもお伝えしなければならないことがあります。
大変に残念なのですが、どうやら現状のTplcutterタグの指定方式を変更しなければならないようです。
つまり、現在のテンプレートを新バージョンに引き継げなくなりそうです。

現在いろいろな機能をTplcutterに持たせてきたのですが、タグの表現方法に限界がありまして、新機能への割り当てが困難な状況となっています。このため、現在の表現方式を変更して、将来的にも拡張がしやすいようなものに仕様と考えています。
現在はタグ内に含まれている記号が動作を意味していましたが、今回からは動作コマンド名と、そのパラメータが指定できる、多少「プログラムチック」なものになる予定です。こうなっていたのは、該当部分の抜き出しを簡単にしたかったという、作り手側の事情があったからなのですが、プログラムを頑張ってもう少し高級なものに置き換えます。
具体的には、たとえばレイアウト部分は「<!– #layout name=”hoge” output=”false” –>~<!– #layout –>」みたいな表現方法になります(ちなみにこの例ではファイル書き出しを抑制するオプションを指定しています)。多少プログラマー寄りになることで、デザイナーが扱いにくくなるかとは思いますが、この程度でしたらHTMLタグとかとあまり変わらないと思いますので、ぎりぎりセーフかな、と(^^;;;。
まだ本決まりではないのですが、このような理由で「革命的」というわけです。
互換性を代償に便利さを求めることになり申し訳ないと思いますが、ご理解いただければ幸いです。

これ以外にも、以前に上げていた拡張案を元に、手っ取り早く実現できるものも搭載できればと考えています。

なお、公開時期は全くもって未定です。
まあでも、少なくとも年内に公開することは「ない」と思います(大汗)。

【CS】今更ですがCreativeSuite3にアップグレード

もうすぐCS4が出るのですが、いまさらCS3にアップグレードです。

何故かというと、手持ちにあるAdobe製品はどれも古いもので、今バージョンアップしないとどれもバージョンアップできなくなってしまうため、正直仕方なくです。CS3にバージョンが上げられるのはPhotoshop7とFLASH MXなのですが、将来的にCS4 DesignPremiumにするということで、最安プランであるFLASH MX→CS3 WebStandard→CS4 DesignPremiumにしよう、という感じです。AdobeStoreでDesignPremiumをまともに購入すると28万くらいですが、Photoshopからアップグレードすると24万。ところがこれをビックカメラorヨドバシでポイント付きでWebStandard経由でアップグレードしていくと、実質17万台で済むのですよ! しかもDesignStandard経由より4万ほどお得になります。これはかなり割安でオススメです!

さて、アップグレードの話はこれくらいにして、クソ高いCSを何故アップグレードしたかというと、もう一つ理由がありまして…
実は、いまどきのサイトデザインの手法をよく知らないので、一度買って勉強してみよう、というのがあるんです。
ちゃんと理解できたら仕事にも取り入れていこうかと。

いつも困ってしまうのが、グラフィカルなサイトのテンプレートを作成する際、画像が先か、HTMLが先かで悩む点です。画像を先に作ってもHTMLに配置してうまくいかなかったり、その逆もうまくいかなかったり。ロールオーバーなんか入ったりしたらパニックものです。まあこれは今まで、連携のなかった古いバージョンのPhotoshopとGolive/Dreamweaverで作っていたからではないかと。ちゃんと連携しているソフトなら、もっと勝手が良くなっているのではないか…というわけです。

そして、これをTplcutterを通じてCakePHPで作成する流れをガイドライン化できたら、みんなでウマーな感じになれるのではないかと。TplcutterやCakePHPを抜きにしても、CSの各アプリを連携させてサイト開発を解説しているような本やサイトがそんなになくて、「みんなどうやっているのだろう?」という疑問があるんですよね。少なくともプログラマー側はそのプロセスがよく分からないんじゃないかと。Tplcutterを発展させるためにも、「いまどきのデザイン制作」を体感して、それをレポートできたらな~と思っています。

ちなみにCS3をざっくりと見てみたのですが、PHPはバージョン5に対応してないっぽいですね。それからSSHが使えるかあやしいところ。SVNとかに対応しているともっと管理が楽になりそうなんですけど…CS4で先進的な機能が追加されていることを祈ります。
 

CS4を検討されている方は是非こちらから!


【お知らせ】ECWorks Blogを移転しました!!

予告通り、ブログを移転しました。
タイトルも「(仮)」ではなくなりました(笑)。
旧ブログの内容は全てこちらの方に移してありますので、今後こちらの方を見ていただけると幸いです。

ブログシステムも予告通りWordPressなんですけど、いろいろと苦労しました。
まずMySQLの新規インストールと設定に手間取りました。Postgresのほうが数倍は楽(笑)。
それから、これはと思うテーマがなくて、探し回ってしまいました。
以前のデザインはコントラストが低くて見にくかったと思うので、今回のはコントラスト超高めです。ワンポイントな画像などそのままになっているので、今後いろいろと手を入れていきたいと思います。

ちなみにWordPressなテーマなんですが、Tplcutterでは作成が難しいですね。
layout部分がヘッダやフッタが分かれて格納されるため、ここを上手い具合にやらなければいけないとか、全部のページに対してPHPでヘッダとフッタを呼び出す形式になるとか。逆に言えば、それさえクリアできれば、ディレクトリ構造などはそのままでいけるので、対応できそうですね。
せっかくなので、TplcutterをWP対応させて、もっとテーマを皆さんに作って貰えるようになったらいいかも、なんて(笑)。どのみち必要かなと思っていたある機能もこれで必要になりそうなので、対策を考えてみます。

【CakePHP/Tplcutter】LTで紹介できなかった実演などを紹介したスライドを公開します(cakecon)

「CakePHPカンファレンス東京」のライトニングトークで、実演できなかった部分について、加筆してスライド化したものが出来ましたので公開いたします。とりあえずのTplcutterの便利な点が一通り分かるかと思いますので、是非ご覧ください。

ちょっと画面が小さいため、拡大できるバージョンを見た方が良いかもしれません。ちなみに下記URLでご覧いただけます。
http://www.slideboom.com/presentations/24747/Tplcutter%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E8%B6%85%E9%AB%98%E9%80%9F%E3%82%A6%E3%82%A7%E3%83%96%E3%82%B5%E3%82%A4%E3%83%88%E9%96%8B%E7%99%BA%28%E4%BD%BF%E3%81%84%E6%96%B9%E7%B7%A8%29

もしよろしければご感想などいただければ。
ツッコミどころ満載だと思いますので。
そもそもこのボリュームをやるつもりだったのか? とか(激汗)。

【CakePHP/Tplcutter】カンファレンス中のスライド公開します(cakecon)

お待たせしました。
LT中で使いましたスライドを公開します。

なんと、未公開映像付きです(笑)。
というか、後半を表示できなかったんですよね。
それでははじまりはじまり…

こちらで見ていただくと、フルスクリーンになったりします。
http://www.slideboom.com/presentations/24080/Tplcutter%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E8%B6%85%E9%AB%98%E9%80%9F%E3%82%A6%E3%82%A7%E3%83%96%E3%82%B5%E3%82%A4%E3%83%88%E9%96%8B%E7%99%BA 

詳細版スライドは、ちょっと調整した後にアップしてみます。

※言いたいことにそれほど差がなかったので、今回はやめることにしました。
後日新規で作ってみたいと思います。

【余談】
最初、フォントが崩れてしまい「こりゃ公開無理だ…(;-;)」と思っていました。
「フォントを埋め込む」でppt作っていないといけなかったんですね。
こういったことも今回初めてだったので、今回はとても勉強になりました。
今後も発表はやっていきたいですね。

【関連サイト】
http://conference.cakephp.jp/
http://events.php.gr.jp/events/show/55

【Tplcutter】Tplcutterの今後とカンファレンス後での私の決意(cakecon)

昨日のカンファレンスであまりにも疲れてしまったため、カンファレンス関連のブログを物色しながらゆっくりしています。

昨晩ざっくりとカンファレンスの感想等を書いたのですが、肝心なことを書き忘れていたのでちょっと紹介したいと思います。

それは、Tplcutterの今後についてです。

現在バージョン0.2.0で、バージョンコードからも分かるように完成型の仕組みではありません。
自分自身、何処でバージョン1.0とするかはまだ決めかねているのですが、おそらく「全ての人がViewの高速実装に関して満足が得られるようになった」ときが1.0かな、と思っています。

前置きはこれくらいにして、とりあえず現在考えている「直近のバージョン」について、アイデアを書いてみたいと思います。

●(CakePHP)「プリフィックス」の対応
 CakePHPでは、以前に「webservice」という機能が搭載されていて、Tplcutterはこれに対応しているのですが、これが改新されて「プリフィックス」という機能に置き換わりました。プリフィックスに関するViewの実装はwebserviceと全く変わってしまったため、現在のTplcutterでは対応しておりません。
 とりあえずTplcutterは0.2.0で、「基本機能としてはまあおおむね使えるものになった」と思っているので、やっとプリフィックス対応に取りかかれるかな、という感じです。

●(CakePHP)img等のタグをhelperに置き換える?
現在のTplcutterでは、相対パスを絶対パスに置き換えることで、helperを用いないでビューが作れる、つまり可視性に優れている利点があります。ところが、この点が後に問題を引き起こす可能性があり、出来ることなら変換後はヘルパーに置き換わっていた方がよいのではないか、と考えています。それは「いずれ、Cakeの管理下にないパスが使えなくなってしまうのではないか」という点です。

実はあまりふれていないのですが、ベースパスが「/」である環境については全く問題なく動くのですが、たとえば「http://www.hoge.com/~user/cake/app/webroot/」なんかで運営されていて、ベースパスを「/cake/app/webroot/」なんかにしている場合、現在動かないのではないかと思います。何故なら、Tplcutterでこれを考慮していないからです。おそらくbasepathとかオプションを作って指定してやれば出来るようになるのではないかと思いますので次のバージョンではそうしようと思っていますが、これを超える考慮が必要になるときがいずれ来るのではないか、という予言めいた思いがあります。
Cakeに限らず、どのフレームワークにも言えることなんですが、この辺の制御を完璧にフレームワークに任せてしまった方が安心感があるんですね、当方としては(^^;;;。

 
ただ、これに関しては弊害もあって、結局パスをhelperにしても、helper内でまた同じURLに戻すわけで、オーバーヘッドを増やすだけのように思います。そんなわけで、現在心が揺れている状態です。

【追記】

一晩考えてみたのですが、やはりこれはそのままにしておいた方が良いと判断しました。
よくよく考えてみたら、全てのフレームワークについて考慮しなければならなくなりますし、それに「問題が起きたときにやればよい」わけで、先取りしすぎた機能かな、と。
オプションでそのようなものを作っても良いかもしれませんが、とりあえずやめておきます。

●layoutファイル生成の抑制と別名指定
現在の仕様では、layoutファイルは必ず作られ、またレイアウトファイル名はコントローラ名と同一で生成されます。この縛りをなくす仕組みを入れたいと考えています。

●定数の宣言と挿入
「ピース」機能で、指定ボックスを記憶して他のテンプレートに挿入できる機能を0.2.0で搭載したのですが、この技術を応用して、決められた値をあとでテンプレートに挿入できる機能を考えています。これはどう行った場所で使えるかというと、たとえばAmazonのアソシエーションIDを一カ所に指定しておくだけで全部を変換できるとか、URLがちょくちょく変わる状況で、一発変換させたいとか、そういった使い方が出来るような仕組みです。
こういったことはPHPのdefineで出来ますが、あくまでも設定するのは「デザイナー側」である点が考え方として異なります。また、defineすら呼び出さずにテキスト化されるため、オーバーヘッドになりません。

 
【追記】
 
●コマンドライン上の制御オプション(ある意味復活)
一時的に制御を変えたいようなオプションを、コマンドラインから与えられる仕組みはやはり必要とのことで、コマンドライン解析を復活させようと思っています。その理由は下記に。

●ファイルコピーの抑止オプション
●ファイルコピーの強制オプション
●テンプレート書き出しの抑止オプション
「画像だけ更新したい」「画像はそのままにしておきたい」「タイムスタンプが古くても上書きしたい」という場合の強制力オプションを付けようと思います。 

※上記の機能は「あくまでもアイデア」ですので、実際にこれらが次のバージョンがつくかどうかは分かりません。必要なものから順番にやっていくつもりではいます。

 

もし他に「こんなのが欲しい」というような要望がありましたら、是非お寄せください。
ちなみに次のバージョンがでるまでには時間が結構空くと思うので、ダウンロード控えはされない方が良いと思います(笑)。いまのTplcutterを是非ご活用いただければ!

 

それから、CakePHPプロジェクトマネージャーのGarrett氏と交流して、「やはり国際化は必要だ」と感じています。氏自身が最後に語ってくれたと思うのですが、「もっと英語で発信して欲しい。そうすればこのような素晴らしいアイデアが世界中の皆で活用できる」ということで、それについては私も実感しました。

ただ、私自身が英語が苦手であり、いつも翻訳ソフトに頼っているというのも事実でして…
Garrett氏にTplcutterのスライドの英訳を渡したのですが、中身は翻訳ソフトの成果みたいなものです。英語のテキストを打つ時間より、調べたり考えたりする時間の方が100倍は長かった気がします。この年になって恥ずかしいのですが、やはり英語をきちんと使えるようになりたい。そうすればもっといろんな人とディスカッションできるのに…と思います。

なので、今後の活動として「国際化」もテーマの一つに入れたいかなと思います。
ちなみに、カンファレンス後の帰路で本屋に立ち寄り、英語の本を物色していた恥ずかしい私です(^^;;;。

さいごに…
スライドの方はもう少しかかります。
提供方法をどうしようか悩んでいるからです。
pptを直接さらしても良いのですが、見ることが出来ない人もきっといるでしょうから。
全部の中身を分解するか、スライドを公開できる場所を借りるかのどちらかにしようとも考えています。
新原さんのサイトに、スライドが公開されているのを見たのですが、これにしてみようかな。

【CakePHP/Tplcutter】「CakePHPカンファレンス東京」が終わって(cakecon)

カンファレンスに参加された皆様、お疲れ様でした。
また、私のLTに耳を傾けていただきまして、ありがとうございました。

もう少しまともなスピーチがしたかったのですが、場慣れしていないというスキル不足と、あまりにもボリュームに対して時間がなさ過ぎた題材を選んだという点でとても反省しております。個人的に、出来は100点中10点です(大汗)。次回こういった機会がありましたら、100点を提供できるように頑張りたいと思います。

というわけで、私の発表しました「「Tplcutter」を用いた超高速ウェブサイト開発」について、補足事項というか、いいわけめいたものを書きつつ、他の方のスピーチに対して私の思いをつらつらと書いていきたいと思います。

まず、補足事項というか言い訳なのですが、実際に発表できた内容は用意していた20%ほどで、すべてを5分で語るのはとてもとても無理でした(大汗)。とりあえず、Tplcutterの優れている点を絞り込み、今回は一撃で空のサイトにビューを生成して放り込む部分をかろうじて実演をしたのですが、本当に実演したかったところは別のところにもありました。

カンファレンス終了後や、懇親会中で、予想以上に多くの方から「これはおもしろい・興味あるツールだ」とおっしゃっていただけました。皆さんに話を聞くと、おおむね同じような悩みを抱えていらっしゃっていて、つまるところ「デザイナーとのやりとりでアップデートが大変に楽になる(可能性を秘めている)」とのことでした。私の一番主張したかったところはここであり、実装よりはむしろ更新の部分でしたので、このような感想をいただけたということは、このツールの方向性は正しかったと胸をなで下ろしています。

特にびっくりしたのはCakePHPプロジェクトマネージャーのGarrett氏で、懇親会中、英訳した資料を渡すついでに少しだけお話しできたのですが、開口一番「Oh, Tplcutter! It is VERY COOL!!」とお言葉をいただけました。まさかこのような評価をしてくれるとは思っていませんでしたので、とてもとても光栄です。

実はGarrett氏と話す前に、今回は通訳を担当されていた、堂園さんにご挨拶させていただいたのですが、そのときも「いや、Garrettはかなりクールだといっていた」といわれてまして、何かの間違いだと思っていました。もともとTplcutterは、ホビーユース・大規模開発の方をターゲットとしていなくて、「実務でフレームワークを使って制作している中小向けのツール」のつもりだった…つまりメジャー路線ではないと思っていたのです。LTも「東大に記念受験する出来の悪い学生」のような気持ちで臨んでいたので、自分的にはウケが悪い筈だったのです。Garrett氏も、現在のフレームワーク、とりわけCakePHPの「高速開発」のコンセプト内で、ビューの実装に関する、何か「もや」のようなものを感じていたんでしょうかねぇ。

繰り返しになりますが、デモンストレーションがあまりにも未完成のため、100%の利点を伝えることが出来なかったのですが、機会ありましたら別の形で紹介できればと思っています。もしお望みでしたら、出張講演(???)等も全然OKですので(笑。

発表に使ったスライドは、後日アップさせていただきます。
また、更に詳細に書いたスライドもありますので、そちらもチェックの後にアップさせていただきます。

個人的には、全く笑いの取れなかった点も残念に思っています。
他の方は皆さん面白い話を織り交ぜられていましたが、私の方はもうそれどころではなく、時間内にデモまでいくのに精一杯で、終わってみたら超つまらない内容でした(大汗)。デモの中に笑いを用意していたのですが、完全に予定外でしたね(;^;)。

まあ、とりあえず一部の方ではありますがそれなりの評価をいただいて手応えもありましたので、今回に関してはこれで良しとしたいと思います。

さて、他の方のスピーチに私なりの思いを語ってみたいと思います。

【安藤さん;国内でのCakePHPの利用状況について】

スピーチ内で「高速開発フレームワーク」という、CakePHPのコンセプトを強調されていましたが、私もその考え方に乗っているクチでして実際その通りだと思っています。
また、「フレームワークは生産性と保守性の向上である」というのもその通りで、私もそれを切実に感じてフレームワークを検討し、現在に至ります。丁度1年前の話になります。

【岸田さん:Agileな開発現場での実践例】

「テストケース」の使い方についてご説明いただき「あとあと役立つ」的な説明をされていました。この「あとあと」の重要性というのは、開発内容でとても左右されるのではないかと思います。パッケージソフトや、業務ソフトなどについてはかなり重要だと思います。

ちなみに私はwebプログラミングを本職としたのは比較的に新しく、以前はゲームの開発をやっておりました(最初はプログラマーとしてでしたが、プランナーが本職でした)。当時はテストケースという考え方はなく、ひたすら「人の手によって発生した不具合」を集計し、反映させる作業を繰り返していました。ただ現在考えてみると、ゲームのようなコンテンツアプリは、かなりイレギュラーな場合の不具合が圧倒的に多く、今回のようなテストケースが仮に組み込めるにしても、本当に価値のあるデバッグは人の手によるものでしか分からない点があったりします。ゲームの話は結構極端かもしれませんが、インターフェース部分、とりわけフロントエンド開発では、ページ遷移などの影響でテストケースに支障が出る可能性が多分にあるのではないかと考えます。

極端な話、私は「いくらテストケースをしようが、人の手によるエラーのチェックは省くことが出来ない」と考えていて、このことはテストケースを含むデバッグプロセスを想定する上で念頭に置いた方がよいのではないかなと思います。

【Garrett氏招待講演】

CakePHP開発のテーマはとして「State of Nature(ありのままに出来る自由)」と「Social Contract(ルール作り)」他があるそうで、特に「ルール作りをすることで、(皆が)より自由な発想が出来る」という思想のようです。
つまり「面倒なところはプログラム任せ。自分はよりやらなければならないところに特化する」という私のテーマと合致しているところがあり、とても嬉しく思っています(そういえば岸田さんも同じようなことをスピーチ内でおっしゃっていましたね)。
Garrett氏の説明を受け、やっぱりCakeは全体のシステム(プログラム、というわけではなくて、プロジェクト全体の意味)が良くできているなと改めて思いました。

ちなみに、Cakeの未来としては、とりあえずRC4が出るそうです。また、近いうちに1.3が始まり、2.0でPHP5オンリー化を目指すそうです。
そして、チケットを出す際には「テストケースとパッチを一緒に上げる」を是非しましょう、とのことです(笑)。

【鶴岡さん:XoopsCubeなのにCakePHPを使う】

XoopsCubeは実は使ったことがなかったのですが、私も実は同じようなコンセプトのCMSを作り、それを現在も商売として運営していますので、「中小向けのCMS市場」というのは需要があることはよく分かります。ただ、実際に運営してみて思ったことは「HP作りたいけどやり方が分からない」という方の多くは「PCも分からない」というくらいのスキルギャップがあり、いくら便利なCMSを作っても使ってくれないという事を身にしみていたりします。つまり、サービス運営側がCMSを使うことは何ら問題がないのですが、エンドユーザに提供するまでをやってしまうとカオス入りしかねないと思っています。そういった意味で「中小の市場は、想像よりは意外に狭い、でもやり方次第で顧客を獲得できる可能性は高い」という感じですかね。

【青木さん:旅行代理店様向けチケット予約をCake+Ajaxで】

Ajaxは私も結構注目している技術で、それでいてなかなか難しい技術だったりすると思っています。あおきさんの目指した「ユーザインタフェースの向上」は代表的なAjaxの使用例なのですが、私はもう一つのテーマを最近追求していたりします。
じつは、最近「連想くん」を紹介させていただいているのですが、こちらもAjaxは当たり前のように使っているのですが、実はAjax化は苦肉の策だったんです。「連想くん」での採用理由は、なんと「不可分散(というか時間短縮)」で、クライアント側に処理を肩代わりしてもらうことで、サーバ側の硬直時間を作らない仕組みになっています。
少し奇妙に思われるかもしれないのですが、これはPHPがシングルタスクである点から由来しています。例えばGoogleやアマゾンへいくつかのリクエストを送るのですが、個数が増えると順番に実行していかなければなりませんので、終了するのに時間がかかってしまうのです。そこで、Ajaxで複数のリクエストを同時に発行し、効率よく結果が得られるようになっています。
連想くんの例はあくまでも一例なのですが、UIとしてのAjaxはもう過渡期かなと思いますが、そのほかの使い方も出来るのではないか、という可能性みたいなものを感じています。

【青木さん:連想検索】

実は、全く同じコンセプトが当方の「連想くん」だったりするのです。
ただし、連想くんの連想エンジンは、全く違うもので、青木さんのところはかなり本格的なアルゴリズムのもとで行っているようですが、当方のものはかなり「エセ」だったりします(^^;
これからは連想検索の時代だと思います。
「検索のコンシェルジュ」的な存在だと思います。
間違いなく、今後の主流になるのではないかと予感があります。
本当はちゃんとご挨拶して連想検索について熱く語りたかったのですが、タイムアウトでその夢は叶いませんでした(涙。

【梶原さん:CakePHPerのためのBDDのすすめ】

SpecというツールやBDDという技術は実はよく知らないのですが、こういった考え方は必要かなと思います。考え方のフレームワークを実現するツール、という印象を受けました。あまりにも知識がなさ過ぎてコメントが難しいのですが、今後勉強が必要と感じました。

以上、ざっと書かせていただきましたが、私はまだ小さなところでやっているなぁと感じました。
また機会がありましたら発言させていただきますが、この次はもっとホット&クールなネタを用意しないとですね。

長文失礼いたしました。
ごめんなさい、昨日今日ほとんど寝ていないので超眠いです。
今日のところはもう寝ます。

【追記】
ねねとまつさん(赤がすきさん)、捕捉ありがとうございます。
トラバ張っていただけているみたいなのですが、何故か管理画面上では出ているのに、公開画面に出てきてないのです(涙)すみません…出てきましたー
Tplcutter期待されていたそうで、大変に嬉しく思います。資料をなる早で公開させていただきます。

【追記2】
ご紹介いただいてありがとうございます。
以下Tplcutter関連のコメントを捕捉です。

creazy photograph :  CakePHPカンファレンス東京:参加レポート
ラボブログ : CakePHP カンファレンス東京で「フェイス女学園」が紹介されました!
看招 血染東方一片紅 : CakePHPカンファレンス東京に行ってきた
本を読む : CakePHPカンファレンス東京」にオンライン参加
WEBで地域活性化~岐阜県中津川市加子母から発信☆WEBシステム屋の日記~ : CakePHPカンファレンス東京に行ってきましたよー
d.tosh10の日記 : 10/25 CakePHPカンファレンスに行って
パンプキンスパイスラテ : CakePHPカンファレンス東京にいってきた!
/halt/Snapshot : CakePHPカンファレンス 東京は最高のイベントでした
tdoiの日記 : CakePHP カンファレンス Tokyo
Think Twice : カンファレンス振り返り
わすれないように. : cakePHPカンファレンス@tokyo に参加してきた

【Tplcutter】Tplcutter0.2.0公開いたします

新バージョンのTplcutter バージョン0.2.0を公開いたします。

先日指摘しましたelement関連の不具合の修正と、新機能である「ピース」機能の実装をいたしました。

「ピース」機能を簡単に説明いたしますと、エレメントは「繰り返し流用したい部分をあらかじめファイルに書き出しておき、それを呼び出す」機能であるのに対し、「繰り返し流用したい部分をあらかじめメモリに蓄積しておき、加工時に指定の場所にコピーする」機能を提供します。こうすることで、実際の表示の際に余分な処理を抑えることが出来、展開速度の向上を見込むことが出来ます。

なお、ピースは同一アプリケーション内であれば、テンプレート内のどの場所に記述しても有効に働きます。つまり、指定した領域のあるテンプレートファイルと異なったテンプレートファイル内でも呼び出すことが出来ます。

使用例はサンプルファイル内にありますので、そちらをご覧いただけますと幸いです。

とりあえず使えるツールになったっぽいので、よほどのバグがない限り、しばらくバージョンアップは控えることにします。まだいくつかやりたい機能はありますが、それは現在構築している新企画サイトの作成が終わってからにしたいと思います。

*************************************************
    テンプレート加工ツール「Tplcutter」簡易説明書
    Copyright (C) 2008 ECWorks ( http://ecw.seesaa.net/ )
*************************************************
 設置方法など詳細につきましては、アーカイブ内のドキュメントをお読みください。

————————————————–
■はじめに
————————————————–

 現在主流になりつつある、フレームワークを用いたWEBアプリ開発では、HTMLファイルやPHPファイルを直接表示する手法は少なくなり、Viewシステムを介してテンプレートファイルを読み込み、それを加工した後に表示する手法が一般的となりました。
 ところが、テンプレートファイルは通常外部から見えない領域に格納されるため、デザイン編集作業の際にテンプレートファイル内に記述する画像など表示物等のリンクが実際のリンクと異なってしまうため、編集が困難になるという問題が発生します。

 そこで、デザイン時では普通のHTMLを編集するような感覚でデータを作成し、それらテンプレートとその他ファイルを適切な位置に配置できるようなツールが実現できないかと考え、本ツール「Tplcutter」を開発しました。
 デザイナー側から見ますと、サイト制作ツール等で編集可能なディレクトリ構造のまま作業し、それをそのままプログラマー側に受け渡せます。また、テンプレートは読み込んで加工したものを別のディレクトリに作成し、その他表示物はコピーしますので現在稼働しているサイトのデザインを崩すことなく直接編集することも可能です。
 そして、最大のメリットとしては、コマンド一発で全てのテンプレートを更新することにあります。デザイナーによって制作されたテンプレートを適用するためには、これらファイルを加工したり、異なるディレクトリに配置したりする必要がありました。デザインが変更されるたびにこの作業を行わなければならないため、無駄な手間が発生します。本ツールはこれら作業を自動化しますので、時間の節約や更新間違い等による不具合の発生を極力防ぐことが出来ます。
 本ツールは、もともとCakePHPフレームワークにて利用できるように開発したのですが、SmartyやSynfony等、ほかのフレームワーク・テンプレートシステムでも利用できるように、PHPコマンドラインでも利用できるよう拡張いたしました。ini形式ファイルにて細かな設定が出来ますので、幅広いシステムで使用することができます。

————————————————–
■動作環境
————————————————–

 本ツールは、CakePHP1.2.xのCakeコンソール、もしくはPHP4/5のコマンドラインで使用することが出来ます。

 CakePHPにてテンプレートを利用する場合は、Cakeコンソールで使用することで、ほぼ無設定でCakePHP向けのテンプレート加工をします。
 同様に、PHPのコマンドラインから利用する場合は、ほぼ無設定でPHP向けのテンプレート加工をします。

 どちらの方法でも、ini形式ファイルにて設定することで、異なるテンプレートシステム向けの加工をすることも可能です。

————————————————–
■ご利用条件
————————————————–

 本ツール一式は使用もしくは再配布について、無料でご利用いただけます。
 本ツールおよびアーカイブ内に含まれる全ての著作物に対する権利はECWorksが保有しており、GNU一般公衆利用許諾契約に基づいて配布しております。再配布・改変等は契約の範囲内で自由に行うことが出来ます。詳しくは、添付のGNU一般公衆利用許諾契約書をお読みください。
 なお、本ツールは一般的な利用において動作を確認しておりますが、ご利用の環境や状況、設定もしくはプログラム上の不具合等により期待と異なる動作をする場合が考えられます。本ツールの利用に対する効果は無保証であり、あらゆる不利益や損害等について、当方は一切の責任をいたしかねますので、ご了承いただきますようお願い申し上げます。

▼ダウンロードはこちら
tplcutter-0.2.0.zip