2012年11月29日木曜日

外苑前銀杏並木

外苑前の銀杏並木を見てきました。一部黄色になっていない部分はありましたが、概ね見頃な状態でした。

銀杏並木1 銀杏並木1 銀杏並木1 銀杏並木1 銀杏並木1 銀杏並木1

2012年11月6日火曜日

emacs24にしたらマウスでコピペの挙動が変わった

emacs24にしたらマウスでコピペの挙動が変わってしまった。以前はマウスで選択するとクリップボードにコピーされ、マウスの真ん中ボタンでペーストされていたのだが出来なくなってしまった。

どうやらその辺のデフォルト設定が変更になったらしいので、以前の動作に戻すため下記の設定を追加した。

(setq x-select-enable-clipboard nil)
(setq x-select-enable-primary t)
(setq select-active-regions t)
(setq mouse-drag-copy-region t)
(global-set-key [mouse-2] 'mouse-yank-at-click)

2012年11月4日日曜日

スピーカ FOSTEX PM0.3を購入

最近はInternet Radioばかり聴いている訳なのですが、以前はSANSUI AU-α607LのアンプにAppleTVを繋いで、BOSE cubeスピカーから音を出していました。しかし、Internet Radioから流れる音楽はビットレートはそれほど高くありません。むしろ、音楽聴くのもiPhoneやMacからairplayで鳴らしているので、オーバースペックな気がするし機材が場所とっていて狭いので、現状の構成を取っ払って最小構成にしようと思いました。

スペースの確保を優先したかったので、アンプ内蔵のPCスピーカから幾つか候補を絞りました。最初に候補にあがったのが「BOSE Companion2 II マルチメディアスピーカー」でした。BOSE cubeを使用していたのと、Jazzを主に聴くのでドンシャリ系にチューニングされていると言うのも選んだ要因でした。

BOSE Companion2 II マルチメディアスピーカー

次の候補はFOSTEX パーソナル・アクティブスピーカー・システム PM0.3です。FOSTEXと言うメーカは正直知らなかったのですが、国内のメーカでスタジオ・モニター等のスピカーを作っている所らしく、癖がない音を出すと言うのがネット上の評価でした。

FOSTEX パーソナル・アクティブスピーカー・システム PM0.3

FOSTEXと言うメーカに興味を持ったのと、8,000円弱という価格を鑑み、FOSTEX PM0.3を選択しました。しばらく使用して見た感想は

  • 高音から中音の音がすごく良い。ボーカル・トランペット・サックス・ピアノが前に出てくる感じ
  • 低音も普通に頑張っています。ベースのソロの時はちゃんと存在感が出ている音です。低音中毒で低音が足らないと聴いた気がしないという人以外は問題無いレベルだと思います。
  • 少人数の演奏や音が少ない音楽だと活き活きとした音が出ます。ピアノトリオやグレン・グールドのバッハはやばいです。
  • 逆にクラッシックのオケや音が多い音楽では、ぼやけた感じの音になります。ドビュッシーの「喜びの島」を聴いたときは音が多すぎて、音楽が後ろに下がってしまているような印象を受けました。
  • LEDが眩しい。潰したくなりますw

FOSTEX PM0.3は価格の割には、とてもバランスの良い音を出します。買って正解だったと思います。

牛肉にたとえるならば、BOSE等が"ドンシャリ系"は巧みに調整された脂の乗った霜降り肉の神戸牛とするならば、FOSTEX PM0.3は自然の中で育った脂は少ないが適度に柔らかいアルゼンチン牛と言うところでしょうか。(両方とも食べたことは無いが……)

2012年10月28日日曜日

最近、よく聴いているInternet Radioの一覧

JazzのCDは1000枚近く持っているが、最近はどれを聴こうかとセレクトするのも面倒臭く、いざ選んだCDを聴いていてもマンネリ気味で、聴いていても気分が乗ってこない。

そういう訳で、最近はJazz系のInternet RadioをiTunesのプレイリストに登録し、AirPlayでスピーカーに飛ばし聴いている。これならば、気に入らない曲が流れていても、ザッピングして別の曲を選ぶ事が出来る。音質もそれなりに良いので、作業をしながら聴くには申し分がない。

特によく聴くのは下記の局です。

JAZZRADIO.com
Jazz専門のラジオ局。Jazzカテゴリー毎にチャンネルが分かれているので、「Modern Jazzが聴きたいのに途中からFusionに変わっていた。」などと言うことが単一局ではありがちなのですが、それが無いのが良いです。プレミアメンバの入会を勧誘するおねーさんの声がハスキーでセクシーと個人的に思っている。
SKY.FM
Jazz,Rock,rap,Classicalなの様々チャンネルに分かれています。Jpopなんてのもある。Jazzの選曲も悪くないです。
calmradio.com
iTunesのラジオライブラリーの中にサンプルとして入っていたのですが結構良いです。サイトを見に行くと沢山のチャンネルがありますが、iTunesで聴くためには有料会員にならないと駄目っぽい。iPhone,iPadを持っているならば、専用のiアプリがあって無料で聴けるみたいですが、AirPlayが出来ない様なので微妙かな。
Radio Swiss Jazz
スイスのラジオ局だけあって、英語、ドイツ語、フランス語のアナウンスがあったりする。気に入った局があった場合は、Web Siteに行けば番組プログラム表に購入ボタンがあるので、そこからamazonなどで購入が出来るのが便利。
TSF Jazz
フランスのラジオ局。フランスらしいセンス良さと、フランスらしいダサさが混じった局。特に局の間に入るCMはダサさ満点w

他にも良いラジオ局はあるので、自分のiTunesプレイリストを公開しておきます。[ファイル]->[ライブラリ]->[プレイリストを読み込み]でインポートが出来ると思います。

2012年9月12日水曜日

マウリッツハイス美術館展に行ってきた。

仕事が忙しくて行けなかった、マウリッツハイス美術館展に行ってきました。ネットで混雑状況を調べてみると異様に混雑しているようですね。以前、Bunkamura ザ・ミュージアムで開催していたフェルメールからのラブレター展を見に行ったときは、それほど混雑していなかったので、やはり「真珠の耳飾りの少女」の知名度が大きいのでしょうか?

マウリッツハイス美術館展戦利品

自分は、混雑した美術館が大嫌いなので行くことを迷っていたのですが、ネットの情報によると夕方は比較的空いている・8/11から20:00まで開室が延長される。との事なので、閉室間近に行けばゆっくり鑑賞できるのではと、夕方に行ってきました。

延長初日の8/11の6:15頃に美術館に到着、待ち時間は無しで入ることが出来、やはり読みは正しかった!館内は多少混雑はしていましたが、うんざりするほどの混み具合ではなく、空いている絵画から見ていけば全面でゆっくり鑑賞出来ました。

「真珠の耳飾りの少女」の絵の所はさすがに込んでいてたので、後回しにして他の絵画を鑑賞し閉室20分頃に「真珠の耳飾りの少女」の所に行くと、かなり空いていました。「真珠の耳飾りの少女」は「歩きながら止まらないで近くを鑑賞ルート」と「じっくり二歩ほど下がったエリアで鑑賞」の2方式があるのですが、この時間になると「歩きながら止まらないで近くを鑑賞ルート」は行列無しですぐ見ることができます。その後「じっくり二歩ほど下がったエリアで鑑賞」の最前列でゆっくり鑑賞。まさに"至福の時間"を味合うことができました。

ギャラリーフェイク 「メトロポリタンの一夜」より

2012年8月25日土曜日

Smartyでclass定数(const)を表示する方法。

先日、phpのconstをsmartyで表示させようと思って苦戦したので、備忘録として書いておきます。

php側に下記のクラスが定義されていたとします。

<?php
class Hoge{
    const firstname = 'foo';
    const lastname = 'bar';
}
>

これをSmartyのテンプレートで表示するには次のようにします。assignはしなくてもアクセス出来る様です。

<div>firstname:{"Hoge::firstname"|constant}</div>
<div>lastame:{"Hoge::lastname"|constant}</div>

2012年6月16日土曜日

Emacs nxml-modeの色設定

Emacsを23.4にしたら、nxml-modeのカラー表示設定が有効にならなくなってしまったので再設定しなおしてみた。

(custom-set-faces
 ;; xml-validate
 '(rng-error
   ((t (:foreground "red" :weight bold))))       ;; エラー部分

 '(nxml-name
   ((t (:foreground "#AACF53"))))                ;; 
 '(nxml-text
   ((t (:foreground "#AFAFB0"))))                ;; テキスト
 '(nxml-ref
   ((t (:foreground "#FF6A6A" :weight bold))))   ;; 参照文字の親定義
 '(nxml-delimiter
   ((t (:foreground "#FFFAFA"))))                ;; delimiterの親定義
 '(nxml-delimited-data
   ((t (:foreground "#9B30FF"))))                ;; delimiter内データの親定義

 ;; xml宣言タグ
 '(nxml-processing-instruction-target
   ((t (:foreground "#C7DC68"))))                ;; xml宣言
 '(nxml-processing-instruction-delimiter
   ((t (:foreground "#E9DFE5"))))                ;; xmlタグのdelimiter(<? ?>)
 '(nxml-processing-instruction-content
   ((t (:foreground "#9B30FF"))))                ;; ???

 ;; DOCTYPEタグ
 '(nxml-prolog-literal-delimiter
   ((t (:foreground "#AFAFB0"))))                ;; DOCTYPE内のdelimiter(")
 '(nxml-prolog-literal-content
   ((t (:foreground "#82AE46"))))                ;; DOCTYPEの内容
 '(nxml-prolog-keyword
   ((t (:foreground "#C1E4E9"))))                ;; DOCTYPE内のkeyword
 '(nxml-markup-declaration-delimiter
   ((t (:foreground "#E9DFE5"))))                ;; DOCTYPEタグのdelimiter(<! >)

 ;; htmlタグ
 '(nxml-namespace-attribute-xmlns
   ((t (:foreground "#FF8247"))))                ;; xmlns属性
 '(nxml-namespace-attribute-prefix
   ((t (:foreground "#FF8247"))))                ;; xmlns属性のprefix(xmlns:math)
;; '(nxml-namespace-attribute-colon
;;   ((t (:foreground "#FFFAFA"))))              ;; namespace属性のcolon
 '(nxml-namespace-attribute-value
   ((t (:foreground "#AFAFB0"))))                ;; namespace属性値
 '(nxml-namespace-attribute-value-delimiter
   ((t (:foreground "#AFAFB0"))))                ;; namespace属性のdelimiter(")

 ;; CDATA
 '(nxml-cdata-section-delimiter
   ((t (:foreground "#D9333F"))))                ;; <![xxxx[  ]]>
 '(nxml-cdata-section-CDATA
   ((t (:foreground "#D9333F"))))                ;; CDATAの文字
 '(nxml-cdata-section-content
   ((t (:foreground "#AFAFB0"))))                ;; CDATAの内容

 
 '(nxml-tag-delimiter
   ((t (:foreground "#E9DFE5"))))                ;; tagのdelimiter(< >)
 '(nxml-tag-slash
   ((t (:foreground "#E9DFE5"))))                ;; tagのスラッシュ
 
 ;;'(nxml-element-prefix
 ;;  ((t (:foreground "#884898"))))
 ;;'(nxml-element-colon
 ;;  ((t (:foreground "#884898"))))
 '(nxml-element-local-name
   ((t (:foreground "#E6B422" :weight bold))))   ; 要素名
 
 '(nxml-attribute-prefix
  ((t (:foreground "#C97586"))))                 ;; 属性のprefix(xml:lang)
;; '(nxml-attribute-colon
;;   ((t (:foregroud "#9B30FF"))))               ;; 属性のコロン
 '(nxml-attribute-local-name
   ((t (:foreground "#C97586"))))                ;; 属性名など
 '(nxml-attribute-value
   ((t (:foreground "#82AE46"))))                ;; 属性値
 '(nxml-attribute-value-delimiter
   ((t (:foreground "#AFAFB0"))))                ;; 属性値のdelimiter(")

 '(nxml-comment-delimiter
   ((t (:foreground "#D9333F"))))                ; コメントのdelimiter()
 '(nxml-comment-content
   ((t (:foreground "#D9333F"))))                ;; コメント内容
 
 ;; 参照文字
 ;; '(nxml-entity-ref-name
 ;;   ((t (:foreground "#FF6A6A"))))          ;; entity名 (<)
 ;; '(nxml-entity-ref-delimiter
 ;;   ((t (:foreground "#FF6A6A"))))          ;; entityのdelimiter(&xx;)
 ;; '(nxml-char-ref-number
 ;;   ((t (:foreground "#FF6A6A"))))          ;; 文字実体参照の番号 (&#160;)
 ;; '(nxml-char-ref-delimiter
 ;;   ((t (:foreground "#FF6A6A"))))          ;; 文字実体参照のdelimiter(&#xxx;)

 '(nxml-hash
   ((t (:foreground "#9B30FF"))))
 '(nxml-glyph
   ((t (:foreground "#9B30FF"))))
)

下記の様な配色にしていみました。

配色

2012年4月7日土曜日

新さくらのVPSにOpenBSDをインストール

さくらのVPSに新しいプランが発表されました。価格が一番安い「さくらのVPS 1G」はHDDが100GBになり、現在契約しているプランの5倍の容量、メモリーは2倍の容量となりお得感が大きいですね。さらに、乗り換え優遇キャンペーン中で一ヶ月利用料が無料となるので飛びついてみた訳ですが…

新さくらのVPSはOpenBSDはインストールできない?

いえ、できます。

正確には、驟雨のカーネル探検隊さんの所で紹介されていた方法では出来ませんでした。前回インストールしたときは、Ubuntuを再インストールしてGRUB2からOpenBSDのインストーラを立ち上げる方法を取っていました。

今回も、その方法でインストールを試みました。しかしこの方法では、ブートはするのですがHDDを認識しなくなってしまいました。ブート時のメッセージを見ると、旧サービスではI/Oの仮想化にQEMUが使われている?ようですが、新サービスではに、virtioが使われるようになったらしく、OpenBSDがvirtioを認識できないのでHDDが見えていなかったようです。

FreeBSDからインストールしよう。

色々調べてみると、新さくらのVPSにFreeBSDをインストールするとQEMUが使われる事がわかりました。FreeBSDのブートメッセージを見ると下記の様に"QEMU HARDDISK"と出力されています。 FreeBSDのdmesg

ならば、FreeBSDからインストールすればいいんじゃね? と言う事で次のような手順でインストールしてみました。

  1. FreeBSDをインストール
  2. FreeBSD上にGRUB2をインストール
  3. GRUB2からOpenBSDのインストーラをキックする
  4. OpenBSDをインストール

インストールのベースがUbuntuがFreeBSDに変わっただけですね。

FreeBSDをインストール

カスタムOSインストールガイド FreeBSD編に従ってインストールします。インストールしたものはすぐ消えてしまうので適当で構いません。パーティションの設定はおまかせ・インストールもミニマムで問題無いです。

FreeBSD上にGRUB2をインストール

インストールが終了したらGRUB2のインストールを行います。最初に必要なパッケージをftpでダウンロードしてきます。

# ftp ftp://ftp2.jp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.1-release/devel/libiconv-1.13.1_1.tbz
# ftp ftp://ftp2.jp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.1-release/devel/gettext-0.18_1.tbz
# ftp ftp://ftp2.jp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.0-release/sysutils/grub2-1.98_1.tbz
#

ここで注意するのが、「”grub2はpackages-8.1-release”でなく”packages-9.0-release”のパッケージを使用する。」と言うことです。

自分の環境では、packages-8.1-releaseのパッケージを使用するとgrub-installコマンドがエラーになり、grubがインストール出来ませんでした。

# grub-install /dev/ad0
/usr/local/sbin/grub-probe: error: cannot find a device for /boot/grub (is /dev mounted?).
No path or device is specified.
Try `/usr/local/sbin/grub-probe --help' for more information.
Auto-detection of a filesystem module failed.
Please specify the module with the option `--modules' explicitly.
#

必要なファイルがダウンロード出来たならばインストールします。

# pkg_add libiconv-1.13.1_1.tbz  gettext-0.18_1.tbz grub2-1.98_1.tbz
pkg_add: warning: package 'grub2-1.98_1' requires 'gettext-0.18.1.1', but 'gettext-0.18_1' is installed

#############################################################
To install GRUB on the master boot record of your hard drive
use 'grub-install ' command.

A typical menu entry in /boot/grub/grub.cfg for FreeBSD:
menuentry "FreeBSD" {
	set root(hd0,1,a)
	kfreebsd /boot/loader
}
Or use grub-mkconfig to create the config file.
#############################################################
#

ワーニングが出ますが気にせず、grubをインストールします。

# grub-install /dev/ad0
Installation finished. No error reported.
# cd /boot/grub
# vi /boot/grub.cfg
# vi /boot/grub/grub.cfg
menuentry "FreeBSD" {
	set root(hd0,1,a)
	kfreebsd /boot/loader
}

grubのインストールが完了したら、bsd.rdを/boot以下にダウンロードし、リブートします。

# cd /boot
# sudo ftp ftp://ftp.jaist.ac.jp/pub/OpenBSD/5.0/amd64/bsd.rd
# sync;sync;sync;reboot
#

GRUB2からOpenBSDのインストーラをキックする

リブートとすると下記の様なgrubの画面が出てきますので、すかさず"c"キーを押下します。

FreeBSDのgrubメニュー

次にbsd.rdを読み込んでブートさせます。

bsd.rdのロード

hddが認識されています。

OpenBSDのdmesg

その後は、普通のOpenBSDインストール作業と変わらないので、粛々とインストール作業を進めればよいでしょう。

2012年4月4日水曜日

iterm2で処理が終了したとき、Growlに通知する方法

iTerm2のドキュメントにあるInteresting Linksに載っていた方法ですが、リンク先が無くなっていたので備忘録として書いておきます。

iTerm2でコンパイル等の時間が掛かる処理をしている場合、処理が終了したときにGrowl通知させたい、と言う事があると思います。このような場合、下記のコマンドを実行することによりiTerm2からGrowlに通知する事ができます。

$ echo $'\e]9;Growlへ通知するメッセージ\007'
$

メッセージは日本語もOKです。

$ sleep 10;echo $'\e]9;起きたよ〜\007'
$

上記のコマンドでは、10秒後にGrowlに対して「起きたよ〜」のメッセージを通知します。

growl通知

実行する度に、エスケープシーケンスを打ち込むのは面倒なので、.bashrcに関数を定義して登録しておくと便利です。

growl() { echo -e $'\e]9;'${1}'\007' ; return  ; }

試しに、mercurialをportからコンパイルしてみます。

$ sudo port install mercurial +bash_completion; growl "mercurial のインストールが終わったよ"

インストール終了後に、growlに通知されました。

インストール終了のgrowl通知

2012年3月30日金曜日

iterm2の機能まとめ その3

かなり間が開いてしまったが、一応まとめてあったので書いておこう。iterm2の機能まとめ その3です。

隠し設定

ドキュメントに書いてあるのだけれども、設定しても変化がないものが多い。やり方が間違っているのか?

#タブの幅を動的に伸縮させる
defaults write com.googlecode.iterm2 UseUnevenTabs -bool false

#コンテキストメニュから選択したキーワードをgoogle検索(デフォルト)
defaults write com.googlecode.iterm2 SearchCommand -string "http://google.com/search?q=%@"

#コンテキストメニュから選択したキーワードをyahoo検索
defaults write com.googlecode.iterm2 SearchCommand -string "http://search.yahoo.com/search?p=%@"

#ホットキー押下時のアニメーション速度を設定 (変化無かった)
defaults write com.googlecode.iterm2 HotkeyTermAnimationDuration -float 0.25

#スプリットペインのぼかし量を設定 0(クリア) 1 (不鮮明) デフォルト値は  0.15
#値を変えても変化無
defaults write com.googlecode.iterm2 SplitPaneDimmingAmount -float 0.25

# フォント幅を調整(変化無かった)
defaults write com.googlecode.iterm2 HiddenAdvancedFontRendering -bool true
# フォント幅はマイナスの値で0に近づく程薄くなり、遠くなるほど厚くなります
defaults write com.googlecode.iterm2 HiddenAFRStrokeThickness -float -0.1
    
# フォアグラウンドタブにGrowlの通知を受信したい場合 (変化無かった)
defaults write com.googlecode.iterm2 GrowlOnForegroundTabs -bool true

独自のエスケープコード

カーソルの形状の設定

^[]50;CursorShape=N^G
N=0, 1, 2
0: Block
1: Vertical bar
2: Underline
echo -e "\033]50;CursorShape=0^G"

インサートモードの時にカーソルを細くしたいならば.vimrcに下記の設定をします。

let &t_SI = "\]50;CursorShape=1\x7"
let &t_EI = "\]50;CursorShape=0\x7"

ウインドウタイトルとタブの背景色

ウインドウタイトルとタブの背景色を変更するには次のようにします

^[]6;1;bg;red;brightness;N^G
^[]6;1;bg;green;brightness;N^G
^[]6;1;bg;blue;brightness;N^G
Nは0から255までの十進数です。

bashだと下記の例では背景が紫色になります

echo -e "\033]6;1;bg;red;brightness;255\a"
echo -e "\033]6;1;bg;green;brightness;0\a"
echo -e "\033]6;1;bg;blue;brightness;255\a"

2012年2月23日木曜日

iterm2の機能まとめ その2

前回に続いてiterm2の機能まとめ その2です。まとめてみると知らなかった便利機能が出てきて目から鱗です。

マウスレステキスト選択

マウスを使用せずテキストを選択する場合は、cmd+fで検索窓を開いて選択したい文字のキーワードを打ち込みます。検索候補が複数ある場合は下記のショートカットで候補間を移動出来ます。

  • cmd+g:前候補に移動
  • cmd+shift+g:次候補に移動
Split Horizontally

選択したい文字列に移動したらば、tabキーで選択範囲を後ろへ広げます。shift+tabキーで選択範囲を前に広げます。

  • shift+tab:選択範囲を前に広げます Split Horizontally
  • tab:選択範囲を後ろへ広げます Split Horizontally

画面分割

iTerm2は、複数のセッションを複数の"ぺイン(窓枠)"にcmd+dやcmd+shift+dで分割表示する事ができます。ペイン間の移動は下記のショートカットになります。

  • cmd+opt+←:左のペインに移動
  • cmd+opt+→:左のペインに移動
  • cmd+opt+↑:上のペインに移動
  • cmd+opt+↓:下のペインに移動
  • cmd+[:前ペインに移動
  • cmd+]:次ペインに移動

現在位置のマーク/マークへのジャンプ

cmd-shift-mでセッション内の現在位置をマークします。マークした位置にはcmd-shift-jでジャンプ出来ます。(同一セッション内でのジャンプが可能で他のセッションにはジャンプ出来ません。)

最初にプロンプトが"etc(46)$"の所で現在位置をマークします。

Split Horizontally

しばらく作業したのでプロンプトが"etc(50)$"になりました。

Split Horizontally

上記の状態でcmd-shift-jとするとプロンプトが"etc(46)$"の場所へジャンプしました。

Split Horizontally

正規表現検索

cmd+fで検索窓が開きますが、虫眼鏡マーク横の下矢印により正規表現検索を有効に出来ます。正規表現はIUCシンタックスが使用されます。

Split Horizontally

オートコンプリート

タブまたはそのスクロールバッファ内に存在する任意のテキストを、そのタブ内で自動補完することができます。オートコンプリートを使用するには、補完したい単語の先頭の一部を入力してcmd+;を押下すればオートコンプリートウィンドウが開きます。

Split Horizontally

オートコンプリートウィンドウには、入力候補が20個表示されますが、更に文字を入力する事により入力候補を絞り込む事が出来ます。

候補を選びエンターキーを押下すると、その候補がコマンドラインに入力されます。

候補を選びtabキーを押下すると、その候補対する幾つかの候補が絞り込まれます。

ペースト履歴

テキストをコピーまたはiTerm2に貼り付けされるたびに、それがペースト履歴に追加されます。

cmd+shift+hでペースト履歴を表示する事ができます。文字を入力する事により履歴の絞り込みが出来ます。

Split Horizontally

Preferences > General > Save copy/paste の設定によりペースト履歴をディスクに保存する事も出来ます。

インスタントリプレイ

topコマンドやwgetの進捗バーの様なインタラクティブなプログラムは画面が上書きされてしまい、履歴を見ることが出来ません。 インスタントリプレイを使用すると、時間を遡るように過去のある時点の画面とまったく同じものをステップ実行で見ることができます

インスタントリプレイモードを有効にするには、cmd+opt+bを押下します。

Split Horizontally

インスタントリプレイモードでは、左右矢印キーで時間を前後に移動出来ます。インスタントリプレイから抜けるにはescを押下します。

Split Horizontally

デフォルトで各セッションは、インスタントリプレイの履歴を保存するために4メガバイトまで使用出来るように設定してあります。 これはPreferences > General > Instant Replay uses __ MB per sessionで設定可能です。

フルスクリーン

cmd-enterでフルスクリーン表示になります。フルスクリーン表示では透明度の設定が(画面に集中できるように)無効になります。cmd-uで透明度の設定を再度有効にすることができます。 (出来なかった)

256色モード

iTerm2は256色モードをサポートしています。 cshシェルでこれを有効にする には、設定(Preferences > Profiles > Terminal > Report Terminal Type)でxterm-256colorを選択します。

一部のアプリケーションでは、このモードをサポートするように構成する必要 があります。vimではvimrcにこれを追加します。

set t_Co=256

マウスフォーカス制御

このオプションはデフォルトでオフになっていますが、Preferences > General > Focus follows mouseで有効に出来ます。(Build 1.0.0.20120203ではPreferences > pointer > Focus follows mouseで設定出来ます)[iTerm2ウィンドウ間でマウスフォーカス制御が有効になるだけで、他のアプリケーション間だとフォーカス制御が働かないようです]

スマート カーソル カラー

ブロックカーソルを使用する場合、それはすべての背景色に最適なカーソルの色を選択するのは難しいです。スマート カーソル カラー(Preferences > Profiles > Colors)を有効にすると背景色に最適なカーソル色を動的に選んでくれます。

Growlをサポート

あなたのマシンにGrowlがインストールされており、iTerm2のGrowlを有効(Preferences > Profiles > Terminal > Enable Growl Notifications)にしている場合は、幾つかの端末状態をGrowlに通知させることができます。

Split Horizontally

Exposéのタブ

cmd-opt-eで全てのタブを一度に表示出来ます。

Split Horizontally

ウィンドウ アレンジメント

現在開いている、ウィンドウ、タブ、メニューオプションのウィンドウとペインのスナップショットをcmd+shift+sで保存する事が出来ます。

リストアしたい場合は、デフォルトに設定したアレンジメントの場合はcmd+shift+rで戻せます。それ以外のアレンジメントはメニューオプションのWindow > Restore Window Arrangementから選んでリストア出来ます。

iTerm2を立ち上げたときにリストアしたい場合は、Preferences > General > Open saved window arrangementを設定します。複数のアレンジメントの管理は Preferences > Arrangementsで出来ます。

Split Horizontally

燃え尽きなければ、その3も書こうかな...

2012年2月22日水曜日

iterm2の機能まとめ その1

iTerm2を常用していますが、一部の機能しか使用していないので、どんな機能があるのかしらべてみました。と言ってもここに書いてある事が殆どだけれども(笑)

iTerm2は頻繁にアップデートされているため、ここに書いてある事が古くなる可能性が高いです。ここでの記述はBuild 1.0.0.20120203のiTerm2を前提にしています。

タブ

iTerm2は複数のWindowセッションを開くことが出来ます。複数のセッションを開くには複数の方法がありあります。

  • Shell > New Window で新しいウインドウを開きます
  • Shell > New Tab で新しいタブを作成します
  • Shell > Split Horizontallyで現在のウインドを水平に分割して新しいセッションを開きます Split Horizontally
  • Shell > Split Verticallyで現在のウインドを垂直に分割して新しいセッションを開きます Split Vertically

タブは一般的なタブブラウザと同じような動作をします。タブをウインドウの外に出すことにより、新しいウインドウを作成できます

tab separate

デフォルトのタブタイトルは、現在動かしているジョブ名が表示されます。幾つかのシステムではカレントディレクトリが表示されます。

Tab alart

タブタイトルはPROMPT_COMMAND環境変数(bashを使用)を設定する事によって表示は変更可能です。私の場合は、ホスト名:カレントディレクトリ(現在動いているジョブ名)を表示するように設定してあります。

PROMPT_COMMAND='echo -ne "\033]0;${HOSTNAME%%.*}:${PWD/$HOME/~}\007"'

他のshellを使用の場合は、How to change the title of an xtermを参考にして下さい。

タブはステータスによって色付けされます。現在開いているタブ以外のタブに出力があると、タブのタイトルがマゼンダ色に変化します。更に数秒後に赤色に変化して注意を促します。変化があったセッションのタブをアクティブにすると元の色に戻ります。これは、 Preferences > Appearance > Color tab labels on activityで無効に出来ます。

proc finish Proc done

マウス

マウスの主な用途はテキストの選択です。選択されたテキストは直ちにクリップボードにコピーされます。ダブルクリックすると単語を選択します。トリプルクリックすると行全体を選択します。クアドラプルクリック(4回クリック)すると、urlやメールアドレスと認識した文字列にマッチした所を選択する"スマートセレクト"を実行します。

shiftを押下しながらクリックすると、現在の選択エリアがクリックされた所まで拡張されます。

cmdキーを押下しながらurlをクリックすると、そのリンクをブラウザで開きます。

cmdキーを押下しながらファイル名をクリックすると、そのファイルをエディタで開きます。"FileName:LineNo"と言う形式の表示をクリックし開くアプリケーションがMacvim, Textmate,BBEditである場合には、ファイルを開き指定した行番号にジャンプします。

cmdキーを押下すると、選択文字列をドラッグ&ドロップできます。

cms+Ctrキーを押下しながら選択すると、長方形に選択出来ます。

rectangular selection

"Mouse Reporting(Preferences > Profile > Terminal)"が有効にしてあると、現在の動作している端末のアプリケーションがマウスを使用している時、optキーで一時的にマウスを無効にし選択を行うことができます。

Ctrキーを押下しながらクリックした場合は、右クリックをシミュレートします。

スクロールマウスをサポートします。

トラックパッド(ナビゲートに設定されている場合)を右または左に3本指スワイプすると、隣接するタブを選択します。(自分の環境では動作しなかった)

キーボード

便利なキーボードショートカットがあります。

  • "cmd+→","cmd+←"と"cmd+{","cmd+}"は前後のタブを移動します。
  • "cmd+数字" 数字番目のタブに移動します。
  • "cmd+opt+矢印"で分割されたウインドウ間を移動します。
  • "cmd+[","cmd+]"で分割されたウインドウ間を使用順に移動します。

Preferences > Keys で グローバルキーショートカット・Preferences > Profiles > Keys で プロファイル ローカルなキーボードショートカットを設定出来ます。

Preferences > Keys では、cmdのような修飾キーを変更する事ができます。

iTerm2は、グローバルホットキーを定義することができます。これを定義する事により、ウインドウを非表示にしたり、全面に表示したりできます。

コンテキストメニュー

画面上で右クリックするとコンテキストメニューが開きます。

Context menus

プロファイル

多くの設定はプロファイルに保存されています。 プロファイルは設定の名前付きコレクションであり、好きなようにあなたはそれらの多くを持つことができます。

ほとんどのユーザーは1つのプロファイルだけを持っていますが、あなたが頻繁に別のサーバーに接続するような場合、複数のプロファイルで管理する事は役に立つかもしれません。

プロファイルの主な特徴は、プロファイルに使用するコマンドを関連付け、それを開始時に実行する事が出来ます。例えばexample.comに頻繁にsshでログインするならば、example.comのプロファイルを作成し、"ssh example.com"を自動実行する設定をする事ができます。

Profiles

その2に続きます。多分…

2012年2月21日火曜日

iPhoneを脱獄してロック画面を作ってみた。

昨年の末に長い間使用していたNokia N81からiPhone 4sに買い換えた。キャリアーはSoftBankからの機種変更だったのだけれども、本体一括払いだと月々980円で維持できると言うのが決め手でした。

iPhoneは「パケットし放題フラット」しか選択出来ないと思っていたので、パケットを余り使わない自分ではお得感がなかったのだけれども、「パケットし放題for スマートフォン」が選択出来るならば持っていても良いかなと思い買ってしまった。

既にiPad2は持っていたので、特に目新しくもなく使っていたのですが、今年になってiPhone 4sが紐無し脱獄が可能になったと聞いて、なんか面白そうじゃんと思い脱獄してみたら、初iPhoneで初脱獄だったにも関わらず凄く簡単にできてしまった。

脱獄アプリを幾つかインストールしてみて面白そうだったのが、WinterBoardと言うiPhone 画面をカスタマイズ出来るアプリ。兼ねてから、ロック画面のデジタル時計をアナログ時計にしたいなと思っていたので、カスタマイズに挑戦してみました。

カスタマイズするといってもやり方がわからないので、テーマを配布しているithemeskyから幾つかロック画面のテーマをダウンロードして中身を見てみると、テーマ中身はhtmlとjavascriptで書かれていることがわかった。

それならば、そんなに難しくないと言うことで、よさげなテーマを見つけ出して部品画像を拝借し、javascriptを改造または追加して出来がったのがこれでした。

Lock画面

電波が受信出来なくて、お天気の情報が取れないときは次の画像になります。

Lock画面

本当は位置情報をnavigator.geolocation.getCurrentPositionで取得して、その場所の天気情報を取りたかったのだけれども、navigator.geolocation系のプロパティは使えないようなので断念しました。残念。