Mac のシステムアップデートで Java の最新版が来たので更新しました。
$ java -version Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8 java version "1.6.0_17" Java(TM) SE Runtime Environment (build 1.6.0_17-b04-248-10M3025) Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01-101, mixed mode)
サーバー証明書をインストールしようとしたらなぜかパスワードが一致せず、再インストールすることに。
$ cd /System/Library/Frameworks/JavaVM.framework/Resources/Deploy.bundle/Contents/Home/lib/security/ $ sudo mv cacerts cacerts.bak $ sudo keytool -import -trustcacerts -alias example.com -file example.com.crt -keystore /System/Library/Frameworks/JavaVM.framework/Resources/Deploy.bundle/Contents/Home/lib/security/cacerts
今回は /System/Library/Frameworks/JavaVM.framework/Resources/Deploy.bundle/Contents/Home/lib/security/cacerts としましたが、通常 $JAVA_HOME/lib/security/cacerts で良い気がします。
パスワード忘れないようにします。と言いたいところなんですが、最初は changeit ですし、寝ぼけていつの間にか変なパスワードでも入れてしまったのだと思います。
Android による Eclipse へのコンソール出力はもっとも手軽な System.out でなく、 android.util.Log から出力する必要があるようです。例えばデバッグレベルでの出力は Log.d(tag, message); と入力する必要があるのですが、補完を使っても面倒なので Eclipse のテンプレート機能を利用してみました。
それぞれ debug, info, warn, error でテンプレート出力するようにしてあり、第一引数のタグ名はクラス名にしています。
${imp:import('android.util.Log')}Log.d("${enclosing_type}", ${cursor});
${imp:import('android.util.Log')}Log.i("${enclosing_type}", ${cursor});
${imp:import('android.util.Log')}Log.w("${enclosing_type}", ${cursor});
${imp:import('android.util.Log')}Log.e("${enclosing_type}", ${cursor}, e);
これまであまりテンプレート機能は活用してこなかったのですが、決まりきったものを入力する場合には手軽感が出てよさげそうです。
また imp:import の後に改行を入れると、補完した瞬間に改行もされてしまい若干ストレスがたまります。少し気持ち悪いですが上のように改行なしで続けて書くと、 import 後も改行されず自然に展開してくれました。
http://www.pshared.net/pub/eclipse/android/log_templates.xml
KeySnail (Japanese) - keysnail - GitHub は日々更新されているのですが AMO の更新が遅く Github で開発、公開されています。(2009/12/15 現在では実験的アドオンに戻され、ほぼ最新のバージョンが公開されています)
せっかくなので Github からより最新をインストールして使いたいのですが、ぱっとページを見てもバージョン番号が分かりません。わざわざ開発版のバージョンを Wiki に更新してもらうわけにもいきません。
ふと install.rdf からバージョンを抜き取ればいいではないかと気づき、これまで E4X を使ったことがないので勉強がてらグリモンでつくってみました。
http://www.pshared.net/pub/greasemonkey/keysnail_version_on_gith.user.js
// ==UserScript==
// @name KeySnail Version on Github
// @authour ussy
// @namespace http://www.pshared.net/
// @include http://wiki.github.com/mooz/keysnail*
// ==/UserScript==
var h1 = document.getElementsByTagName('h1')[0];
GM_xmlhttpRequest({
method: 'GET',
url: 'http://github.com/mooz/keysnail/raw/master/install.rdf',
onload: function(result) {
var response = result.responseText;
response = response.replace(/^<\?xml\s+version\s*=\s*(["'])[^\1]+\1[^?]*\?>/, "");
var xml = new XML(response);
var em = new Namespace("http://www.mozilla.org/2004/em-rdf#");
var version = xml..em::version;
h1.innerHTML += ' - Version (' + version + ')';
}
});
作ってみたもののバージョン番号を結局自分で覚えておく必要がありますし、コマンドから叩いて解析したり別の解決方法がいいですね:)
それにしても E4X すごく便利そうです。 もう少しゴリゴリ使ってみたいと思いました。
zsh, Emacs を使うひとつの理由に、ひとつ前のパス区切り文字まで削除する機能があることが個人的にあります。 例えば zsh の場合 .zshrc に以下の設定を行うことで C-w を入力するごとにひとつ前のパス区切り文字まで削除することができます。(元の WORDCHARS 変数から / を抜き取ったもの)
WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'
どういう動きかをすごく大ざっぱに言うと
$ cd /opt/local/bin
ここで C-w を入力すると下のようにひとつ上のディレクトリまで削除してくれます。実際に自分で動作させたほうが分かりやすいです。
$ cd /opt/local/
bash では C-w を入力すると単語単位、すなわちパスすべてを削除してしまいます。
Emacs でも .emacs に以下の設定を行うことで、 minibuffer 上で C-w を入力するごとにひとつ前のパス区切り文字まで削除することができます。 Dired を利用するので、ひとつ上のディレクトリに移動できるこの設定も重宝しています。
(define-key minibuffer-local-completion-map "\C-w" 'backward-kill-word)
ブラウザでもひとつ上のディレクトリに移動したいことがよくあります。 KeySnail にひとつ上の階層に移動する JavaScript(Bookmarklet) をキーに割り当ててももちろんよいのですが、テキストを編集しているときにもできると色々楽ができそうだと思いスクリプトを書いてみました。
function (aEvent) {
if (command.marked(aEvent)) {
goDoCommand("cmd_copy");
goDoCommand("cmd_delete");
command.resetMark(aEvent);
} else {
var value = aEvent.originalTarget.value;
aEvent.originalTarget.value = value.replace(/(.*)?\/.+$/, function() {
return arguments[1] + "/";
});
}
}
自分の場合 zsh, Emacs で C-w を利用しているので、 KeySnail でも C-w を利用すべく「リージョンをカット」のコードを編集しています。選択中であれば、リージョンをカット、そうでなければひとつ上の階層までカットするようにしています。
これでロケーションバー、テキストエリアなどの編集するところで、 zsh, Emacs 同様ひとつ上のパス区切り文字まで削除できるようになりました。
更新しました。
若干フライング気味ですが Firefox 3.6 に対応しました。
内部的にロジックを見直しました。その中でも FUEL がオプション扱いになるという噂を聞いたので、 FUEL を利用しなくしました。
来年は Chrome がぶいぶい言わせてきそうなのですが、どこまでもカスタマイズできる Firefox をもっと触っていきたいところです。