it: 2008年2月アーカイブ
こんばんは CHORD Fusion の高橋純平です。
とても使いやすいfirefox用のマウスジェスチャーアドオンが紹介されていたので早速ダウンロードしてみました。
「FireGestures」
紹介記事:http://www.oshiete-kun.net/archives/2008/02/firefoxfiregestures.html
ダウンロード:https://addons.mozilla.org/ja/firefox/addon/6366
ちょうど第2回cakePHP勉強会で安藤さんがプレゼンされていたのがfirefoxのアドオン配布サイト「http://addons.mozilla.org/」についてだったので、昨日の話を思い出しながらダウンロードしていました(笑
Lunascapeを使っていた頃はマウス操作でタブ間を移動したりしていましたが、firefoxにしてからはショートカット派になっていました。
最近はマウスも頻繁に使うようになったのでこのアドオンを入れることで、操作が大分快適になりました☆
紹介記事に画面キャプチャなどがあるので、詳しくはそちらを参照してみてください。
とても使いやすいfirefox用のマウスジェスチャーアドオンが紹介されていたので早速ダウンロードしてみました。
「FireGestures」
紹介記事:http://www.oshiete-kun.net/archives/2008/02/firefoxfiregestures.html
ダウンロード:https://addons.mozilla.org/ja/firefox/addon/6366
ちょうど第2回cakePHP勉強会で安藤さんがプレゼンされていたのがfirefoxのアドオン配布サイト「http://addons.mozilla.org/」についてだったので、昨日の話を思い出しながらダウンロードしていました(笑
Lunascapeを使っていた頃はマウス操作でタブ間を移動したりしていましたが、firefoxにしてからはショートカット派になっていました。
最近はマウスも頻繁に使うようになったのでこのアドオンを入れることで、操作が大分快適になりました☆
紹介記事に画面キャプチャなどがあるので、詳しくはそちらを参照してみてください。
こんばんは、 CHORD Fusion の高橋純平です。
楽しみにしていた「cakePHP勉強会」に参加してきました☆
PHP関連では、去年開かれた「PHPカンファレンス2007」以来の参加でしたが、人数が40名程度だったので非常に濃い時間になりました。
今回個人的に気になったのは memcahed ですね。
悲しいことに負荷分散を考える必要に迫られたことがないので、詳細については調べてなかったのですが、firefoxのアドオン配布サイトやニフティトピックイットで実装されているのを解説いただいて興味がわきました!
cakePHP 1.2 では標準で搭載されているようなので、1.2のリリースにも期待ですね。
懇親会では百式の田口さんとお話することができました。
αブロガーの方とお話できたのは初めてだったんですが、とても気さくに対応してくださり、時間があっという間に過ぎてしまいました☆
お話をする中で、これからの時代、個人の影響力がどんどん大きくなっていくだろうということを身を持って感じることができましたし、そういった影響力を持てるように、日々精進しなければと気合も入りました。
ありがとうございました。
また、ニフティトピックイットの裏話を寺本さん・北村さんから直接お聞きできたのは貴重な体験でした☆
一人で立ち上げたプロジェクトが数ヶ月でサービスイン。
しかも公開後数時間でcakePHPで作られていることがバレたとw
結果的にはcakePHPで作られているとバレたこともいい方向に作用したというのが面白いところですね。
あれだけのPVをさばくサイトで使われていると思うと、cakePHPを勉強してきて良かったなと思えました。
それから、会場を提供してくださったトライコーンの皆様にも本当に感謝しています!!
鈴木さんにはe-Mailコンポーネントのライトニングトークまで披露していただき、ありがとうございました。
安藤さんとは最後の最後でちょろっとご挨拶させていただくだけで時間がきてしまいましたが、是非第3回も参加してお話させていただければ幸いです。
このような機会を作っていただき本当にありがとうございました。
ここには書ききれていませんが、懇親会でお話させていただいた皆さん、ありがとうございました。
非常にいい刺激をいただけました☆
最後に勉強会の詳しい内容については安藤さんがblogに書いてくださっているので、そちらをご参照ください。
PS:
我が親友へ、
4travel.jpの山路さんと無事にお会いすることができました(笑
楽しみにしていた「cakePHP勉強会」に参加してきました☆
PHP関連では、去年開かれた「PHPカンファレンス2007」以来の参加でしたが、人数が40名程度だったので非常に濃い時間になりました。
今回個人的に気になったのは memcahed ですね。
悲しいことに負荷分散を考える必要に迫られたことがないので、詳細については調べてなかったのですが、firefoxのアドオン配布サイトやニフティトピックイットで実装されているのを解説いただいて興味がわきました!
cakePHP 1.2 では標準で搭載されているようなので、1.2のリリースにも期待ですね。
懇親会では百式の田口さんとお話することができました。
αブロガーの方とお話できたのは初めてだったんですが、とても気さくに対応してくださり、時間があっという間に過ぎてしまいました☆
お話をする中で、これからの時代、個人の影響力がどんどん大きくなっていくだろうということを身を持って感じることができましたし、そういった影響力を持てるように、日々精進しなければと気合も入りました。
ありがとうございました。
また、ニフティトピックイットの裏話を寺本さん・北村さんから直接お聞きできたのは貴重な体験でした☆
一人で立ち上げたプロジェクトが数ヶ月でサービスイン。
しかも公開後数時間でcakePHPで作られていることがバレたとw
結果的にはcakePHPで作られているとバレたこともいい方向に作用したというのが面白いところですね。
あれだけのPVをさばくサイトで使われていると思うと、cakePHPを勉強してきて良かったなと思えました。
それから、会場を提供してくださったトライコーンの皆様にも本当に感謝しています!!
鈴木さんにはe-Mailコンポーネントのライトニングトークまで披露していただき、ありがとうございました。
安藤さんとは最後の最後でちょろっとご挨拶させていただくだけで時間がきてしまいましたが、是非第3回も参加してお話させていただければ幸いです。
このような機会を作っていただき本当にありがとうございました。
ここには書ききれていませんが、懇親会でお話させていただいた皆さん、ありがとうございました。
非常にいい刺激をいただけました☆
最後に勉強会の詳しい内容については安藤さんがblogに書いてくださっているので、そちらをご参照ください。
PS:
我が親友へ、
4travel.jpの山路さんと無事にお会いすることができました(笑
こんばんは、 CHORD Fusion の高橋純平です。
今日は技術的な備忘録としてのエントリーなのでご了承ください m(_ _)m
ここ(http://tempdocs.cakephp.org/)を参考にしながらcakephp 1.2 でコマンドラインスクリプトを作成。
【Shellプログラム】
/app/vendors/shells/insert.php
【Taskプログラム】
/app/vendors/shells/tasks/record.php
メールを受信したら insert.php を実行して、本文の内容をDBに保存(record.phpで実行)するという流れ。
テストとしてcake.phpをコマンドライン上で実行
/cake/console/cake insert record 2 2008-01-02
引数の1つ目がIDになっていて、既存のレコードがなければ新規登録 / あれば上書き保存という仕組み。
新規登録の場合はうまくいくのだが、上書き保存のときに以下のエラーが出て行き詰った。。。
PHP Fatal error: Undefined class name 'string' in /home/****/cake/libs/model/datasources/dbo_source.php on line 1456
Fatal error: Undefined class name 'string' in /home/****/cake/libs/model/datasources/dbo_source.php on line 1456
dbo_source.phpを見てみると、fieldsという関数の中で呼んでいる String::tokenize()メソッドが認識されていないようだということが分かった。
【原因】
tokenize()メソッドは /cake/libs/string.php 内で定義されているメソッドなので、string.phpをincludeできていないのが原因だった。
【解決方法】
/cake/console/cake.php の__bootstrap()メソッドのincludes に string.php を加える。
日本語で検索しても出てこなかったのだが、google groupsで投げかけている人がいたので助かった。
http://groups.google.co.jp/group/cake-php/msg/e136897070cae911
以下がfix済みのチケット。cake.phpのincludeにstring.phpを含めばよいと書いてある。
https://trac.cakephp.org/ticket/3793
https://trac.cakephp.org/changeset/6312
オープンソースのものを使っていて壁にぶち当たったとき、大抵他の人が先にぶち当たっていたりするので、出てきたエラーで探すと早いですね。
ただ、新しいものであればあるほど日本語での情報は少ないので、積極的に英語を学ぶと共に、日本の仲間への情報共有もしていきたいです。
今回のエントリーも、今後同じエラーに悩む人がいたときの手助けになればうれしいです(^^)
(cakephp1.2がstableとしてリリースされるときには修正されているでしょうけどw)
今日は技術的な備忘録としてのエントリーなのでご了承ください m(_ _)m
ここ(http://tempdocs.cakephp.org/)を参考にしながらcakephp 1.2 でコマンドラインスクリプトを作成。
【Shellプログラム】
/app/vendors/shells/insert.php
【Taskプログラム】
/app/vendors/shells/tasks/record.php
メールを受信したら insert.php を実行して、本文の内容をDBに保存(record.phpで実行)するという流れ。
テストとしてcake.phpをコマンドライン上で実行
/cake/console/cake insert record 2 2008-01-02
引数の1つ目がIDになっていて、既存のレコードがなければ新規登録 / あれば上書き保存という仕組み。
新規登録の場合はうまくいくのだが、上書き保存のときに以下のエラーが出て行き詰った。。。
PHP Fatal error: Undefined class name 'string' in /home/****/cake/libs/model/datasources/dbo_source.php on line 1456
Fatal error: Undefined class name 'string' in /home/****/cake/libs/model/datasources/dbo_source.php on line 1456
dbo_source.phpを見てみると、fieldsという関数の中で呼んでいる String::tokenize()メソッドが認識されていないようだということが分かった。
function fields(&$model, $alias = null, $fields = array(), $quote = true) {
if (empty($alias)) {
$alias = $model->alias;
}
if (empty($fields)) {
$fields = array_keys($model->schema());
} elseif (!is_array($fields)) {
$fields = String::tokenize($fields);
} else {
$fields = array_filter($fields);
}
if (empty($alias)) {
$alias = $model->alias;
}
if (empty($fields)) {
$fields = array_keys($model->schema());
} elseif (!is_array($fields)) {
$fields = String::tokenize($fields);
} else {
$fields = array_filter($fields);
}
【原因】
tokenize()メソッドは /cake/libs/string.php 内で定義されているメソッドなので、string.phpをincludeできていないのが原因だった。
【解決方法】
/cake/console/cake.php の__bootstrap()メソッドのincludes に string.php を加える。
function __bootstrap() {
define('ROOT', $this->params['root']);
define('APP_DIR', $this->params['app']);
define('APP_PATH', ROOT . DS . APP_DIR . DS);
define('WWW_ROOT', 'webroot');
$includes = array(
CORE_PATH . 'cake' . DS . 'basics.php',
CORE_PATH . 'cake' . DS . 'config' . DS . 'paths.php',
CORE_PATH . 'cake' . DS . 'libs' . DS . 'object.php',
CORE_PATH . 'cake' . DS . 'libs' . DS . 'inflector.php',
CORE_PATH . 'cake' . DS . 'libs' . DS . 'configure.php',
CORE_PATH . 'cake' . DS . 'libs' . DS . 'cache.php',
CORE_PATH . 'cake' . DS . 'libs' . DS . 'string.php'
);
define('ROOT', $this->params['root']);
define('APP_DIR', $this->params['app']);
define('APP_PATH', ROOT . DS . APP_DIR . DS);
define('WWW_ROOT', 'webroot');
$includes = array(
CORE_PATH . 'cake' . DS . 'basics.php',
CORE_PATH . 'cake' . DS . 'config' . DS . 'paths.php',
CORE_PATH . 'cake' . DS . 'libs' . DS . 'object.php',
CORE_PATH . 'cake' . DS . 'libs' . DS . 'inflector.php',
CORE_PATH . 'cake' . DS . 'libs' . DS . 'configure.php',
CORE_PATH . 'cake' . DS . 'libs' . DS . 'cache.php',
CORE_PATH . 'cake' . DS . 'libs' . DS . 'string.php'
);
日本語で検索しても出てこなかったのだが、google groupsで投げかけている人がいたので助かった。
http://groups.google.co.jp/group/cake-php/msg/e136897070cae911
以下がfix済みのチケット。cake.phpのincludeにstring.phpを含めばよいと書いてある。
https://trac.cakephp.org/ticket/3793
https://trac.cakephp.org/changeset/6312
オープンソースのものを使っていて壁にぶち当たったとき、大抵他の人が先にぶち当たっていたりするので、出てきたエラーで探すと早いですね。
ただ、新しいものであればあるほど日本語での情報は少ないので、積極的に英語を学ぶと共に、日本の仲間への情報共有もしていきたいです。
今回のエントリーも、今後同じエラーに悩む人がいたときの手助けになればうれしいです(^^)
(cakephp1.2がstableとしてリリースされるときには修正されているでしょうけどw)




