vagrant のVMを外に出れなくしたかったのだが、できなかった…

VM同士やホスト・VM間は自由に通信できるが、VMからインターネットに出られないようにしたかったのだが、やり方がわからなかった…
vagrant で作ったVMは必ずNATが設定されるため、外に出れる?
そのNATに対し、VMssh接続するためのポートフォワーディングが設定されるようだ(vagrant ssh-config で確認できるポート)。
このssh接続を使って vagrantVMを構成しているのかな?そうすると、vagrant の仕様上、NATは必須ということか?
であれば、VMとホストの間の仮想ルータとかでFireWall設定できればそこで止めるという手もありそうだが、どういう仕組になっているのかイマイチよく分かっていない…

readline のキーバインドの指定方法 (inputrc の書き方)

hogem.hatenablog.com

/etc/inputrc の書き方が前から謎だったのだが、emacs風の指定の仕方ができるらしい。 例えば、

$if mode=emacs
…
"\C-d": kill-word
$endif

のように、「"\C-d": kill-word」というのを入れたら、Ctrl+d すると単語単位で削除できるようになった。 Ctrl+x でDelという設定もしたかったのだが、emacs風の設定だと「\C-x…」というキーバインドがたくさんあるため、Ctrl+xを押しただけではすぐ働かずアレげだった。

あと、emacs風の表記では C が ctrl のことで M が Alt のことらしい。

Poderosa の設定の意味

操作 > 追加キー定義

追加キー定義はカンマ区切りで複数指定可能。カンマの前後にスペースが入っても問題ないみたい。

  • Ctrl + d すると Esc + d したのと同じ動作にしたい(単語のカーソル位置より後ろの部分を削除)場合
Ctrl+D=0x1bd

を設定する。0x1b とは Esc の16進数の文字コード

  • Ctrl + ← or → で Esc + ← or → の動作(単語単位の移動)をさせたい場合
Ctrl+Right=0x1b[5C, Ctrl+Left=0x1b[5D

/etc/inputrc を見ると

"\e[5C": forward-word
"\e[5D": backward-word

などと書かれており、\e が Esc のことで [5C , [5D が →、← のことらしい。

  • Ctrl + x すると Ctrl + d(1文字削除。Delキーと同じ。)
Ctrl+X=0x04

Ctrl + d はEOTを入力しており、EOTは16進数文字コードで 0x04。

Routrek Networks ASCII制御文字の入力方法

英数字に追加する単語構成文字

ここに記号等を追加すると、それを単語の区切りと見做さない。ダブルクリックで単語を選択する時等に便利。

./-_

というのが世の中的にオススメらしい。

WindowsImageBackup (Windows 7 以降のバックアップ形式)からのデータ抽出

Windows 7 以降でバックアップを作成すると、WindowsImageBackup というディレクトリが作成され、その中に各種ファイルが作成される。 このバックアップデータから特定のファイルだけサルベージしたいような場合は、WindowsImageBackup 配下のどこかにある.vhdxファイル(hyper-Vの仮想ハードディスクのフォーマット)を右クリックし、マウントすればよい。 マウントしようとした時に「…またはドライブ文字が割り当てられていないボリュームが…」というエラーが出た場合は、デバイスマネージャでドライブ文字を割り当てればよい。

相対シェアの壁:射程距離理論(3:1の法則)

逆転することが難しくなる相対シェアの目安。

局地戦 → 3倍
総力戦 → 1.7倍

局地戦、総力戦の定義は、ビジネスではこういうことらしい。

局地戦 → 2社間競合、単品のシェアの場合
総力戦 → 3社以上の競合

マーケティング用語集 射程距離理論(3:1の法則) - J-marketing.net produced by JMR生活総合研究所

弱者がビジネスで勝つには|ランチェスター戦略の基本

もともとのランチェスターの定義(軍事理論)は、Wikipediaに書いてある。

ランチェスターの法則 - Wikipedia

なんかむりくりビジネスに当てはめてるような気もする。
ビジネスにおける定量的な検証とかされているのかな?

今更ながらの rsync

恥ずかしながら今までよく分かってなかった。

rsyncプロトコルrsync

rsync は、rsyncd や xinetd によってサーバプロセスとして実行させることができる。
この場合は rsync プロトコルで接続。
相手先を

rsync://hostname.com/module/path

で指定。 デフォルトのポートは 873。

sshrsync

ssh や rsh を使って実行することもできる。
その場合、rsync コマンドを打つと、ssh/rsh で相手先サーバに接続し、そちら側でも rsync が起動される。
相手先を scp の作法

username@hostname.com/path/to

で指定。

サーバ間のデータのやりとりも ssh/rsh の中で行っているっぽい。873等で通信するわけではなさそう。
(実際に rsync コマンド打ちながら netstat 見てみたら、ssh以外の接続が無かった。)

基本のおさらい
rsync -avz --delete --include='hoge' --exclude='*' dest-host:/home/hoge .

みたいな感じで使う。

a :「ファイルのプロパティなんかをそのまんまコピー」みたいなこと。
v : verbose
z : 圧縮して転送
--delete : 同期元に存在しないファイルが同期先にあれば消す

注意点
rsync -avz dest-host:/home/hoge/* .

とすると隠しファイル(.で始まるやつ)はコピーされず、

rsync -avz dest-host:/home/hoge/ .

とするとコピーされる、とか。
これは rsync だけでなく、cp や rm でも同様の仕様。