JavaScriptメモ:this値がセットされる場合とされない場合
this値が.の前の呼び出し元(ちゃんとした呼び名があるはずだけど知りません、すみません)になる場合
//(1) 'ABCDEF'.charAt(3); // D //(2) ('ABCDEF'.charAt)(3); // D 個人的にはこれもそうなんだってちょっとだけ驚いた。
this値にglobalオブジェクトが割り当てられる場合
//(3) var f0 = 'ABCDEF'.charAt; f0(3); // j //(4) var f1 = ('ABCDEF'.charAt); f1(3); // j //(5) (0, 'ABCDEF'.charAt)(3); // j //(6) (x='ABCDEF'.charAt)(3); // j // j なのは charAt実行時のthisがglobalオブジェクトになり、それをtoStringしたものが"[object Object]"になるから。
(2)と(4)はものすごくよく似てるけれど、(2)では()式で関数値が値として評価されてその関数がそのまま関数呼び出しに使われるからthis値がセットされない、と思ったのだけどそうではなく、this値がセットされる関数呼び出しになるんですね。という驚きがあったのでメモ。
はじめての雨
San Joseに来てからおよそ二ヶ月。
今日ついに初めての雨が降った。
記念に記録。
追記:
でも昼前にすぐに晴れた。
Mac OS XのターミナルでEmacsを使っていて、M-w(kill-ring-save)のつもりでうっかりコマンド+wをするとウィンドウごと閉じてしまって困るので、システム環境設定でターミナル用にコマンド+wのキーボードショートカットを適当なものに設定して回避しました。とっても便利。
本来M-wはメタキー+wなのでメタキーとしてoptionキーを割り当てておいてoptionキー+wで実行することになるわけですが、ついついコマンドキーを押してしまうことがあります。しかも最悪なことにウィンドウが閉じてしまうわけですね。困ったもんです。
そのために僕が考えた回避策がタイトルです。
とりあえず「ターミナルについて」に割り当ててみました。
でももうちょっとましな回避方法がある気がします。
例えばターミナルのときだけコマンドキーがoptionキーとして動作してくれてもいいけど、それだとコピペしたいときに困るんですよね。
あぁ、ターミナルのときだけコマンドキーとoptionキーが入れ替わるといいな。
そんな技あるかなぁ。。
→コメント欄参照。
id:swdyhさんにid:tunefsさん作成のプラグインを紹介してもらいました。
思いっきり欲しかったものそのものです。
Thunderbird+Lightning+Provider for Google Calendarのときの設定ではまったこと
ThunderbirdにLightningとProvider for Google CalenderというAdd onを使うとカレンダ機能が使えるようになって、かつGoogle Calendarと同期できるようになる。便利。
(→参考:Mozilla Re-Mix: 「Lightning」にGoogle カレンダーを同期させる「Provider for Google Calendar」)
でも、会社内で外につなぐのにProxy設定が必要な場合に、はまった。
Google Calendarの接続先はHTTPSなのでSSLのプロキシ設定も必要になる。
で、メールの受信にもSSLを使ってて、当然そのサーバは会社内LAN内にあったりするとプロキシ経由ではアクセスできなかったりする。
だからプロキシを通さないアドレスとしてメールサーバのアドレス(かネットワークアドレスか)を登録しておかないといけない。
ちょっと考えれば当たり前なのだけどしばらく悩んでしまった。
要はメール受信にSSL使っていることにしばらく気がつかなかったわけで。
なのでメール受信にSSLを使ってなければこんな問題に出くわすこともないわけで、このパターンはレアケースなのかもしれないな。
git install into CentOS
メモ
$ wget http://kernel.org/pub/software/scm/git/git-1.6.3.1.tar.gz $ tar xzvf git-1.6.3.1.tar.gz $ cd git-1.6.3.1 $ ./configure $ sudo make prefix=/usr $ sudo make prefix=/usr install $ $ which git /usr/bin/git $ git --version git version 1.6.3.1