暗示で500%能力を引き出す勉強法

内藤誼人さんの『暗示で500%勉強法』を買ってきた。最近は論理思考の他にも心理学にも興味が出てきたので、心理学関連の本を書いている内藤さんの本が書店に行くたびに気になっていた。今日は特に気になる本がなかったので、この本を購入した。

心理学的に勉強法を解説してあり、やる気、仕事術、読書術、継続、記憶術に各1章が割かれています。今日は第1章だけ読んでみました。

第1章では「スモールステップの原理」、「メンタル・ライティング」が紹介されています。スモールステップの原理は、小さな短期目標を設定し、小さな成功体験を積み重ねていくこと。メンタル・ライティングは、その日の出来事を(その日の成果だったり、ストレスだったりする)文字にしてアウトプットすることで情報を外在化し再認識することです。他にも、締切効果、刺激コントロールといった心理術が紹介されています。

どれも言われてみれば経験があることですが、こうして文字として認識することで、ツールとして活用しやすくなるんではないかと思います。

ブログもメンタル・ライティング効果があるんでしょうね。

1章の最後は根性論で締めくくられてしまいましたが、そこで紹介されている言葉が心に響いたので引用しておきます。

”何せうぞ くすんで 一期は夢よ ただ狂へ” 『閑吟集』

Zend_Rest_Client_ResultからSimpleXMLElementを取得する

Zend_Rest_Client_ResultはSimpleXMLElementのラッパーになっています。直接、SimpleXMLElementを操作したい場合、Zend_Rest_Client_Result::getIterator()で取得できます。

内容を確認したい場合などには以下のようにすると生のXMLを確認できます。

$xml = $result->getIterator()->asXML();
print_r($xml);

ZendFramework 1.6.2 Zend_Restのバグを発見

Zend_Restを使ってウェブサービスを使うプログラムを書いている。Zend_Rest_ClientでGETしてもエラーになってしまうのでいろいろ調べた結果、Zend_Rest_Clientにバグを発見した。

ウェブサービスを使うには、デベロッパーキーが必要でパラメータで渡してやる必要があるのだが、どうもキーがないというエラーが返ってくる。

$cli = new Zend_Rest_Clinet('http://api.hogehoge.jp/fugafuga');
$cli->key('012345');
$result = $cli->get(); // <- エラーが返ってくる

ちなみに、以下のようにした場合は正常に動作する。

$cli = new Zend_Rest_Clinet('http://api.hogehoge.jp/fugafuga?key=012345');
$result = $cli->get(); // <- OK

バグを直すにはZend/Rest/Client.phpの__callメソッドを以下のように修正するがある。

public function __call($method, $args)
{
    $methods = array('post', 'get', 'delete', 'put');

    if (in_array(strtolower($method), $methods)) {
        if (!isset($args[0])) {
            $args[0] = $this->_uri->getPath();
        }
        $this->_data['rest'] = 1;
        $data = array_slice($args, 1) + $this->_data;
        $response = $this->{'rest' . $method}($args[0], $data);
        return new Zend_Rest_Client_Result($response->getBody());
    } else {
        // More than one arg means it's definitely a Zend_Rest_Server
        if (sizeof($args) == 1) {
        	if (!isset($this->_data['method'])) {
                    $this->_data['method'] = $method;
                    $this->_data['arg1']  = $args[0];
        	}
		$this->_data[$method] = $args[0]; // <-この行を追加
        } else {
            $this->_data['method'] = $method;
            if (sizeof($args) > 0) {
                foreach ($args as $key => $arg) {
                    $key = 'arg' . $key;
                    $this->_data[$key] = $arg;
                }
            }
        }
        return $this;
    }
}

現在の最新バージョンの1.7では、このバグは修正されている。

今日買った本です

最近はちょっと忙しくなって更新できてません。書きたいことはいっぱいあるんだけど、なかなか書く時間が取れない。。。

更新さぼり気味なので、買った本の記録だけ。

「すぐやる! 」技術

「すぐやる! 」技術

ムダな仕事はもう、やめよう!

ムダな仕事はもう、やめよう!

Smartyでfor文を使うには

Smartyにはfor文は用意されていません。そこで{section}関数を使って実現します。

for (int i = 0; i < 10; i++) {
    printf("%d回目", i);
}

とC言語で書くところは

{section name=i start=0 loop=10}
  {$smarty.section.i.index}回目
{/section}

というようにすると実現できます。

ZendFrameworkファーストインプレッション

土曜日と日曜日でZendFrameworkの本を読んでざっと概要をつかみました。そして、今日は早速、プロジェクトにとりかかりました。ZendFrameworkのサイトからQuickStartのサンプルをダウンロードしそれを元に開発を始めました。
各テーブルに対応するモデルクラスを作り、コントローラとビューを1セット作り上げました。ビューのテンプレートエンジンにはSmartyを使うことにしました。

これまでに素のPHPとCakePHPでプログラムしたことがありますが、断然ZendFrameworkの方が生産性が高いと感じました。ドキュメントが揃っているのも非常に助かります。今日作ったのは出力のみで入力がなかったこともありますが、今日一日でここまでできるとは思ってませんでした。しかも、今日の作業のほとんどはMySQLとPHPを接続させる作業に四苦八苦していましたから。

普段Railsを使っているので、プログラムが冗長に感じるところもあります。(改めてruby、Railsはすごくいいなぁって思いましたね;-))Railsはレンタルサーバなどでは使えないところが多いので、選択肢としてPHPしかない場合には、今後もZendFrameworを採用していこうと思っています。