今日のなんでやねん
2006-05-10 [長年日記]
凹 [Linux] WinXP + coLinux + TAP + NAT
ノートPCにもcoLinuxを入れてるんだが,移動して別のネットワークに接続する度にICSの設定をいちいちやるのが面倒なので,netshでNATの設定をすることにした. が,さんざんハマったので忘れないようにメモ. というかStepByStepInXPに全部書いてあったんだが…
- regeditでHKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouterの値を0→1へ
- コンピュータの管理→サービス
- Windows Firewall/Internet Connection Sharing (ICS)を停止して無効に.
- Routing and Remote Accessを自動にして起動.
- 以下のコマンドを実行.
netsh routing ip nat install netsh routing ip nat add interface lan1 full netsh routing ip nat add interface lan2 full netsh routing ip nat add interface tap private netsh routing ip dnsproxy install
lan1,lan2は各移動先で使う可能性のあるネットワークインターフェイスの名前. tapはTAPインターフェースの名前.
これでOK.細かく試してないので全部必須かどうか分からんが,こんだけやっとけば使えた.
tapの方はプロパティでアドレスを192.168.0.1,ネットマスクを255.255.255.0に.
colinuxの中でデフォゲを192.168.0.1に向けとく.IPアドレスは適当に.
追記: ICSを無効にするついでにFWも無効になっちゃうので,気になる人は別のFWソフトを入れるか,気にしないようにするか,やっぱしこしこICSにするかしましょう.
追記2: っつーかさー,ICSとFWを分けとけよなー.
凹 [Emacsen] Emacs multi-tty supportの何が嬉しいか
普通のEmacs serverの場合,emacsclientからは既存のフレームしか利用できない. どのフレームに表示させるかは選択できるけど,新規にフレームを開いてそれを利用することができない.
multi-tty supportなEmacsだと,新規にフレームを開いてそれを利用できる. これが超嬉しい. どういう場合に嬉しいのか.
ttyで使っている場合
オレのようにscreen中でEmacsを利用していると,emacsclientを起動する度にEmacsのwindowをselectしないといけない. 編集終了後に元のwindowをまたselectしてやらないといけない.
これはダサい.ダサすぎる. server-visit-hookとserver-done-hookを駆使すれば,それなりに快適にはなるが,それでもなんとなくイヤ.
Xで使っている場合
っつーか最近X使ってないし.
でも例えば,リモートのマシンにsshでログインして,既に起動済みのEmacsがあると分かっていながらそいつの画面を参照する術がないために新規にEmacsを起動しないといけない,あぁなんてことだ!!! みたいなことがたまにある.
こんなとき,multi-tty supportなEmacsなら,emacsclient -tすれば起動中のEmacsに接続して今使っているttyに新規にフレームを開いてくれる. これは結構イケてるんじゃないか? というかイケてるんです.
凹 [Emacsen] keyboard-translate-tableの不思議
オレはC-hでdelete-backward-charな人なので,.emacsで
(keyboard-translate ?\C-h ?\C-?)
してるんだけど,これがemacsclientで開いたフレームで有効にならない.
どうやら,このkeyboard-translate-tableはterminal-local variableとかいうやつで,ようするにterminal毎に別の値を持つことができる変数な訳だ. buffer-local variableのterminal版みたいなの.
なので,emacsclientで新規にフレームを開くと当然C-hはhelp-commandになっちゃっててぁぅぁぅしてしまう.
buffer-localならset-defaultでデフォルト値の設定ができるんだが,terminal-localな変数のデフォルト値をどうやって設定すればいいのか分からないのでとりあえずは
(add-hook 'server-visit-hook
(lambda ()
(keyboard-translate ?\C-h ?\C-?)))
みたいなことをしてしのいでいる. なんかいい方法ないのかな.
凹 [Emacsen] make-frame-on-display
なんかEmacsの話ばっかだが…
こんなのがあるなんて知らんかった.
(make-frame-on-display DISPLAY &optional PARAMETERS) Make a frame on X display DISPLAY. The optional second argument PARAMETERS specifies additional frame parameters.
引数で指定したDISPLAYに新規にフレームを開くfunction.
これは結構楽しい. 別のマシン上のXサーバに同じEmacsインスタンスの異なるフレームを開くことができる. もちろん同じバッファを表示させることもできるので,遠隔地のねーちゃんとのペアプロも不可能ではないぞ!
multi-tty supportだとmake-frame-on-ttyというのもあって,/dev/pts/3とか指定すれば別のttyに新規にフレームを開くことができる. 面白い.
このへんで勘弁しといたる.
旧「なんでやねん」はこちら.
| 2001/01
| 2001/02
| 2001/03
| 2001/04
| 2001/05
| 2001/06
| 2001/07
| 2001/08/25まで |

ゆで卵タイマー、これ随分昔からありますよね。今使っているのは二代目です。段々透明度が無くなってきて気になっていたので買い換えました。
なるほど.前からあったんですね.<br>届いたら茹で卵を作りまくろうと思います.