2007/08/28

CIのはまりどころ[]

CIのキャッシュは一度よまれるとそれ以降はキャッシュが有効なかぎり実際のメソッドはよばれはない。
あたまえだが、実装としてはさらにメソッド毎にキャッシュするかどうかを設定できるといいな。
とおもって結局自分でつくりました。

2007/08/27

変数に設定した関数名を指定して実行する

function bbbb() {

echo "BBBB";
}

class a1 {

var $m;
var $m2;
var $m3;

function a1() {


$this->m = "aaaa";
$mt = $this->m;
$this->$mt();

$this->m2 = "$this->aaaa";
$mt2 = $this->m2;
$mt2;

/*これはだめうーん
ほかにやり方があるとおもうんだけど・・・
$this->m3 = "bbbb";
$mt3 = $this->m3;
$mt3();
*/
}

function aaaa() {

echo "AAAA";


}

}

$obj = new a1();

2007/08/21

Axis2のAXIOMでXPATHのはまりどころ



1111
2222



これがOMElementのelementに格納されていてaa要素すべてを取得する場合
普通は以下のように思うはず
AXOMXPath xp = new AXOMXPath("//aa");
List lstOmeAA = xp.selectNodes(element);

だがこれだと取得できず。
なぜなら暗黙のプレフィックスが存在していてxpath式の「aa」という要素名は存在しない。
じゃあどのように取得するのかというと

AXOMXPath xp = new AXOMXPath("//xs:aa");
xp.addNamespace("xs", "http://sample.org");
List lstOmeAA = xp.selectNodes(element);

てな感じ。
どこにもかいとらんよ。こんなの。
でもPHP4のXPATH関連の関数使ったときもこれとおんなじ挙動だった。
もしかしてXPATH関連の関数ワールドではあたりまえ?

2007/08/08

prototype.jsでのはまりどころ($Fについて)

$Fはドロップダウンでもテキストボックスでもvalueの値を取得できるので便利だが
IE6とFF2では多少挙動が違う。
ドロップダウンでname属性のみ宣言されているときに$FはIE6では取得できるがFF2ではエラーになってしまう。そこでidとnameともに同様な値で宣言しておけば$Fは取得できる。

prototype.jsでのはまりどころ

よくメソッドの名前につかわれる「update」とかを単体で関数宣言時に利用しないこと。
「update~」とかはOK。でないと挙動がおかしくなる。

2007/08/07

prototype.jsのハッシュキーの削除

ハッシュの内容、キーを削除したい場合は以下
マニュアルにはのっとらんのよ

var prm = $H({});
prm["a"] = "aa";
prm["b"] = "aa";

prm.remove("a");

2007/08/06

redmineのインストールで注意点

注意点を以下にあげておく。
①プロキシー越えでruby on railsのインストールをする場合
多くのサイトでは以下のように
gem install rails --include-dependencies -p http://exsample:ポート番号
というふうにインストールするよう記述しているが場合によっては失敗することがある。
その場合は環境変数を先にセットしておいてから行うとよい。
windowsならset http_proxy=http://exsample:ポート番号
linux-bashならexport http_proxy=http://exsample:ポート番号
で行ってから
gem install rails --include-dependencies -r
を実行。1回目の実行でたまに異常終了することもあるが再度実行しなおせばうまくいく。

2007/08/02

URLの一部に「/」をエンコードした値を利用したいとき

apacheのhttp.confの設定で
AllowEncodedSlashes on
にすること。
検索クエリーとかもこれで「q=***」
でなく「/***/」みたいにあたえられるよ。
でもGoogleは「q=***」だけど・・・。
他にもURLの文字として含むとエラーになる文字があるのかも?

2007/08/01

tomcat5.5のデータソースの設定

■server.xmlにデータソースの設定

■context.xmlの用意
(1) %CATALINA_HOME%\conf\にContext.xmlを作成
 全てのアプリケーションのデフォルトコンテキストになります。
(2) %CATALINA_HOME%\conf\Catalina\localhostにContext.xmlを作成
 上のディレクトリはデフォルトのままの場合です。localhost、つまりTOMCATをインストールしたPC上の全てのアプリケーションのデフォルトコンテキストになります。
(3) %CATALINA_HOME%\conf\Catalina\localhostにTestAp.xmlを作成
 上のディレクトリはデフォルトのままの場合です。アプリケーション用ディレクトリをいくつか作る場合、つまりコンテキストをいくつか作るときに、アプリケーション毎にコンテキスト設定を分ける方法です。
(4) %CATALINA_HOME%\webapps\TestAp\META-INF\にContext.xmlを作成
 アプリケーション用ディレクトリにMETA-INFというディレクトリを作成し、そこに Context.xmlを作成する方法です。上の(1)~(3)でTestApが定義されていないとき、ここを見に行きます。Javaプログラムを TOMCATに配備(デプロイ)するときに、warファイルというものを作って行う方法があります。その場合、コンテキスト定義も一緒に配備出来るので便利かもしれません。