いしなお!
2009-03-30 なんかあんまり変わってない [長年日記]
_ tDiaryを2.1.4から2.3.1にアップデートした。文字コードがEUC-JPからUTF-8に変わったはずなのに、何も変換操作をしなくても勝手にデータもアップグレードされてくれたっぽい?
ここ1年以上、RSSリーダーもほとんど放置状態だったんだけど、いったん未読をリセットしてからちらっと回ってみた感触では、1年以上見てなかった割には、ネット界はあんまり変わっていないように見えるなー。
実際、個人でのネットの活動にあんまりおもしろみを感じなくなって、(仕事と受動的な遊び以外は)何となくネットから離れていたんだけど、ここ最近ってあんまり大きな変化って起こってないのかな?
2008-07-07 [長年日記]
_ [PHP][発言小町][熱狂小町] 熱狂小町 - 発言小町リーダー作りました
じわじわとブックマークされつつあるみたいなんで、こっちにも書いておきます。Google Codeを使ってみる実験でもあるんで、何かありましたらあちらにどうぞ。

2008-04-25 [長年日記]
_ obsoleteフラグ
blogとかの古い記事に、簡単にobsoleteフラグを付ける機能があるといいね。消しはしないけど、すでに現状に即していない記事ですよ、というのをわかりやすくするために。obsoleteフラグがついた記事は、古文書風にぼろぼろに表示される(CSSがあたる)といいのかな。
第三者からの評価として行う場合は、ソーシャルブックマークなんかでobsoleteタグを付けておいて、そのタグの数で識別する、なんてのもいいかもね。
あと、記事の掲載日時を表示するときには、単に「○○年×月△日」とだけ書くんじゃなくて、ある程度古くなったら自動的に「○○年×月△日(掲載から□年経過)」とか、その記事が古いことをわかりやすく表示するといいかもね。
っつーか、自分のところもそうだし何か調べていてググった場合もそうだけど、古い技術系の記事のobsolete度合いを簡単に識別する手段があると便利だよね。obsolete度評価専門のソーシャルブックマークとか誰かつくんね?
2008-03-12 [長年日記]
_ [PHP][Zend Framework] Zend_Db_Select::where()メソッドの$type
trunkでは、
* @param string $cond The WHERE condition.
* @param string $value OPTIONAL A single value to quote into the condition.
* @param constant $type OPTIONAL The type of the given value
* @return Zend_Db_Select This Zend_Db_Select object.
*/
public function where($cond, $value = null, $type = null)
{
if ((func_num_args() > 3) or (($type !== null) and ($type !== 0) and ($type !== 1) and ($type !== 2))) {
$value = func_get_args();
array_shift($value);
$type = null;
}
$this->_parts[self::WHERE][] = $this->_where($cond, $value, $type, true);
return $this;
}
なんて感じになっているんだけど、この「(($type !== null) and ($type !== 0) and ($type !== 1) and ($type !== 2))」ってのはどこから現れたんだ?
where()メソッドでは、
* @param constant $type OPTIONAL The type of the given value
になっているけど、ここから呼ばれている_where()メソッドでは、
* @param string $type optional
になっているし、実際PDO_MYSQLを使ったZend_Db_Tableのinfo()では、DATA_TYPEはstringで返ってくる("varchar"とか"int"とか)。
0、1、2という数値から、Zend_Db::INT_TYPE = 0、Zend_Db::BIGINT_TYPE = 1、Zend_Db::FLOAT_TYPE = 2あたりが怪しそうな気がするけど、この値ってZend_Db_Adapter_Abstract内で$_numericDataTypesとして定義されて以降、まったく使われていないし、意味的にも$typeが数値ではなかった場合に$valueを配列扱いするっていう意味がわからない。
これのせいで、trunkにしたらZend_Db_Tableのリレーション周り(findParentRow()とか)が動かなくなっちゃったんだよなー(Zend_Db_Table_Row_Abstract::findParentRow()内でZend_Db_Table_Abstract::info()で取得したDATA_TYPEをそのまま渡しているため)。自前で直そうにも、コードの意味がわからなくて直せないし。
3/13追記
昨日更新されたrevision 8783で、上記の怪しげな条件文はばっさり削除された。なんだったんだ……。
2008-03-11 [長年日記]
_ [PHP][Zend Framework] Zend_Controller_Dispatcher_Standardのtrunk 247行目
if (!$this->getParam('useDefaultControllerAlways') && !empty($controller)) {
は
if (!$this->getParam('useDefaultControllerAlways') && empty($controller)) {
のような気がするんだけど、いい花粉が飛んでいて頭がぼーっとするせいで、いまいち自分の判断が信用できない。ここは、useDefaultControllerAlwaysが無効な場合は、コントローラ名が解決できない→例外を発生させる処理だよな。
2008-02-04 [長年日記]
_ [Zend Framework][PHP] Zend Framework 1.5対応作業
久しぶりにtrunk(Zend Framework 1.5相当)にupしてみたら、ViewRenderer連動時にアクションからビュースクリプト名に変換する際に、自動的にCamelCaseを小文字ハイフン区切りに変換するようになっていた(デフォルトのままのInflectorを利用した場合)。
「FooController::CamelCaseAction」が「foo/camel-case.phtml」になる。従来は単に小文字変換される(foo/camelcase.phtml)だけだったんで、その頃に作ったビュースクリプトファイル名を全部リネームしないと。
新しい仕様の方がわかりやすくていいけど、さらに古いバージョンの頃はfoo/CamelCase.phtmlでいけたから、これで3度目の仕様変更(リネーム作業)だなー。そろそろフィックスしてほしい。
そういえばZend_Layoutが追加されていたんで、自前の(ActionController::postDispatch()を利用した)レイアウト実装から、Zend_Layoutを使ったレイアウト実装への切り替えも行った。こちらは単純なレイアウト以上の高機能なものになっているっぽいけど、ひとまずは最低限のレイアウト機能のみを利用。
それ以外は特に変更しなくても、だいたい動いているっぽいかな。
_ w [熱狂小町、使わせていただいてます。 とても便利です! 以下、もしバグフィックスの参考になれば・・・。 投稿者の名前..]
_ ishinao [>w様 Revision 9で修正しておきました。アーカイブにはそのうち反映させます。]
_ w [早速のお返事、ありがとうございます!]