2011年 9月 の投稿一覧

Eclipseでキーバインドをインポート、エクスポートする方法

[Window]->[Preferences]->[General]->[Keys] から [Export CSV] でCSV出力が出来ますがインポートが無い。。。

キーバインドをインポート、エクスポートする場合は[File]メニューからするみたいです。

eclipse keybindings settings – Stack Overflow.

エクスポート
[File]->[Export]->[General]->[Preferences]
インポート
[File]->[Import]->[General]->[Preferences]

エクスポート、インポートが出来て最近Vrapperを使っているので、.vrapperrcをGithubで管理して置けばどのPCでもキーバインド一緒に出来ますね。

jQueryでXHRを送信するときの覚書

jQueryを使えばどのブラウザでも、XHRを送信して非同期通信が簡単にできるようになりましたが、よく忘れるので覚書。

キャッシュが残る

$.ajax()でリクエストを送る際、通常は一度リクエストを送るとレスポンスがキャッシュされてサーバーサイドのプログラムを修正しても変更されない、と言った事が有ります。

開発中はキャッシュさせない方が良いので、その場合はXHRを送信する前にリクエストヘッダにIf-Modified-Sinceを設定して、サーバーサイドから毎回レスポンスをもらうようにします。

$.ajax( {
    type : 'GET',
    url : 'list.php',
    dataType: 'json',
    data : {
        pref : $('#pref').val(),
        type : $('#type').val()
    },
    beforeSend : function( xhr ){
        xhr.setRequestHeader("If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT");
    },
    success : function(data) {
        $('#list').empty();
        options = new Array();
        
        $.each(data, function(i, v){
            options.push('<option value="' + i + '">' + v + '</option>');
        });
        $('#list').append(options.join());
    },
    error : function(msg) {
       ....
    },
    complete : function(msg) {
       ....
    }
});

If-Modified-Sinceについては、
If-Modified-Since | 鳩丸ぐろっさり (用語集).

同期通信したい

$.ajax()では同期通信もできます。
用途としては、ページロード時に動的にコンテンツを表示してそのコンテンツに対してスタイルを変更する等、コンテンツが取得されたあと何らかの処理する必要が有る場合に同期通信を使います。
同期通信はasyncfalseにすることで可能になります。

$.ajax({
    url: 'news.php',
    async: false,
    success: function(data){
        $('#news').html(data);
    }
});

VMware Fusion4購入

長いことVMware Fusion2を使っていたのですが、Lionには対応してないということもあって4を購入することにしました。

4の特徴は次のようなものだそうです。

MacOSX Lion対応(LaunchPad&Mission Controlでの操作)
パフォーマンス向上(2.5倍)
Mac LikeのUI
仮想マシンとしてLionサポート

引用元: musiclogs.org::blog – 音楽や書物などについて、書いたり書かなかったり。.

USサイトから購入

日本サイトからでも4,635円で購入できますが、USサイトからだと$49.99(約¥3,942円)と多少お安く購入できます。
VMware Online Store

支払いはクレジットとPayPalが選択できますが、今回は主に使っているカードがJCBで決済出来なかったので、PayPalのアカウントを作ってそちらで決済しました。
JCBのカードしか持ってない人とかにとってはPayPalが使えるっていうのは非常に便利ですね。

ちなみに、PayPalについてはnanapiの記事が非常にわかりやすく参考になります。

PayPal 基礎知識ゼロから始める、個人利用・事業利用の使い方大辞典 | nanapi[ナナピ].

決済が完了するとメールが届くので、メール内にあるリンクからダウンロード可能になります。

McAfeeパックと普通のがあるのですが今回はMcAfeeがついてない普通の方をダウンロード、インストールしました。

インストール後ライセンスキーの入力が求められるので、VMwareのマイページから確認して完了となります。

使用感としては確実にパフォーマンスが良くなってると思います。

PEAR::DBでUTF-8のMySQLを使う

コネクションストリングにオプションで書けば出来んじゃないかと思ったのですが、UTF-8使う場合はqueryメソッドでSET NAMESを書くみたいです。。。

<?php
require_once('DB.php');

class DatabaseConnection {

    var $_handle = null;

    function &get () {
        static $db;
        if (!isset($db)) {
            $db = new DatabaseConnection();
        }
        return $db;
    }

    function DatabaseConnection () {
        $phptype = $GLOBALS&#91;'DSN'&#93;&#91;'phptype'&#93;;
        $hostspec = $GLOBALS&#91;'DSN'&#93;&#91;'hostspec'&#93;;
        $database = $GLOBALS&#91;'DSN'&#93;&#91;'database'&#93;;
        $username = $GLOBALS&#91;'DSN'&#93;&#91;'username'&#93;;
        $password = $GLOBALS&#91;'DSN'&#93;&#91;'password'&#93;;

        $dsn = "$phptype://$username:$password@$hostspec/$database";
        $this->_handle = DB::Connect($dsn);
        if (DB::isError($this->_handle)) {
            die($this->_handle->getMessage());
        }
        $this->_handle->setFetchMode(DB_FETCHMODE_ASSOC);
        $this->_handle->query("SET NAMES 'utf8'");
    }

    function handle () {
        return $this->_handle;
    }
}

いまだに、PEAR::DB使ってるのにびっくりしますが | |д・) ソォーッ…