2012年12月5日水曜日

メソッドチェーンと思ったら

 今日、とあるソースを追っかけていたら、こんなソースがあった


this->getFoo()
     ->getBar()
     ->execute();

 が、getFoo() と execute() は同じクラスに見つかるのに、なぜか getBar() が出てこない。全ファイルで grep をかけると別なクラスに getBar() は見つかるのだが、なぜ???

 よくよく調べてみると、getFoo() の戻り値が、getBar() のあるクラスのオブジェクトだった orz。

 まいった。

 

2012年11月12日月曜日

AWS か....

 「AWSで動かすWordPressとその高速化」という勉強会に行ってきた。

 前半 2/3 が AWS の説明。5年ぐらい前に一度 AWS の勉強会に行ったことがあったが、それからずいぶんと変った感じ。
 「黒い窓は嫌い」 という Web 屋さんでも使えるぐらいに簡単にセットアップできるようになっていた。御値段もかなりリーズナブルのものから用意されている。

 以前、XREA で構築し、ドメインが使えなくなったせいで使えなくなった、Django で作った不動産検索システムを移植してみようか?

2012年6月28日木曜日

FF 13 で、とおとお google toolbar が使えなくなった

いままでは、Add-on Compatibility Reporter 1.1 を使って何とか動いていたのだが、今回は FF 側で動かないようにしたらしい。

 ガラケーの仕事もなくなったし、いよいよ Chrome に乗り換えるか。

2012年4月14日土曜日

git のリポジトリのディスク上の位置

jQurey のソースが github にあったり、fluxflex ではソースをサーバーにアップする手段が git だったりと、最近 git が使えないとなにかと不便。

 ということで、git の勉強を始めたのだが、「リポジトリ」がディスクのどこに置かれるのかがわからない。ネットであっちこっち調べてみたのだが、リポジトリの作り方とか、フォークの方法はたくさん見つかるのだが、切り替える方法とか、具体的にどこにあるかの情報が見つからない。

 あれこれ調べたところ、

 ・フォークしたときは、git clone .... を実行したときに作成されたディレクトリの下の .git

 ・新規作成したときは git init foo を実行したときに作成される foo ディレクトリの下にある .git

 ...て、git init foo を実行したら、'Initialized empty Git repository in c:/Users/mugi/git/xxxx/.git/' って表示されてるじゃない orz。

2012年1月26日木曜日

PHP:PDO で IPv6 の DNS に探しに行かせない方法

開発用サーバーでデバッグの終わったプログラムを本番サーバーにデプロイしたら、Web API の呼び出しに5秒のもかかるようになった。

 調べてみると本番サーバは IPv6 対応で、PDO が名前解決のために、まず IPv6 の DNS を呼び出し、見つからない場合にそこがタイムアウトしてから IPv4 の DNS を呼び出すらしいことと判明。

 解決策は PDO のオプションに

curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);

 を追加。

 libcurl を使う、他の言語でも使えそう。

 ちなみに探した時点では google で 'CURL_IPRESOLVE_V4' を検索しても日本語のページは見つからなかった。