2013年5月3日金曜日

iMac-15 gnu-sed

/usr/bin/sed が不満なので、gnu-sed をインストールする。
(1)brew installコマンド
% brew install gnu-sed
% /usr/local/bin/gsed --version | head -1
/usr/local/bin/gsed (GNU sed) 4.2.2
名前が gsed になるのは気に入らない。
% brew uninstall gnu-sed
% brew install --default-names gnu-sed
% ls /usr/local/bin/*sed*
/usr/local/bin/sed
オプションdefault-namesを付けると、gsedでなくsedになった。

(2)/usr/bin/sed の挙動は不満
% echo bbb | nkf -sc > bbb.txt   ... CRLFのテキスト
% hexdump -C bbb.txt    ... 行の終わりが 0xd 0xa のとき
00000000  62 62 62 0d 0a                                    |bbb..|

標準コマンド sed でCRを削除したいとき、
cat bbb.txt | /usr/bin/sed -e 's/\r//g' | hexdump -C
00000000  62 62 62 0d 0a                                    |bbb..|
/usr/bin/sed ではCRを削除できない。

(3)/usr/local/bin/sed では良好
GNUコマンド sed でCRを削除したいとき、
% cat bbb.txt | /usr/local/bin/sed -e 's/\r//g' | hexdump -C
00000000  62 62 62 0a                                       |bbb.|
/usr/local/bin/sed ではCRを削除できる。
#環境変数PATHは/usr/local/binを先に指定しておく。
#tarも brew install --default-names gnu-tar としておこう。

2013年5月2日木曜日

iMac-14 GnuPG

GNU Privacy Guard (gpg)をインストールした。

(1)% brew install gpg

(2)公開鍵と秘密鍵の作成
% gpg --gen-key
gpg (GnuPG) 1.4.13; Copyright (C) 2012 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

gpg: 鍵輪「/Users/username/.gnupg/secring.gpg」ができました
gpg: 鍵輪「/Users/username/.gnupg/pubring.gpg」ができました
ご希望の鍵の種類を選択してください:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (署名のみ)
   (4) RSA (署名のみ)
選択は? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
要求された鍵長は2048ビット
鍵の有効期限を指定してください。
         0 = 鍵は無期限
        = 鍵は n 日間で満了
      w = 鍵は n 週間で満了
      m = 鍵は n か月間で満了
      y = 鍵は n 年間で満了
鍵の有効期間は? (0)
Key does not expire at all
これで正しいですか? (y/N) y

あなたの鍵を同定するためにユーザーIDが必要です。
このソフトは本名、コメント、電子メール・アドレスから
次の書式でユーザーIDを構成します:
    "Heinrich Heine (Der Dichter) "

本名: Firstname USERNAME
電子メール・アドレス: mailaddr@maildom.com
コメント:
次のユーザーIDを選択しました:
    “Firstname USERNAME ”

名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)? O
秘密鍵を保護するためにパスフレーズがいります。
パスフレーズを入力:
今から長い乱数を生成します。キーボードを打つとか、マウスを動かす
とか、ディスクにアクセスするとかの他のことをすると、乱数生成子で
乱雑さの大きないい乱数を生成しやすくなるので、お勧めいたします。
.......+++++
..+++++
今から長い乱数を生成します。キーボードを打つとか、マウスを動かす
とか、ディスクにアクセスするとかの他のことをすると、乱数生成子で
乱雑さの大きないい乱数を生成しやすくなるので、お勧めいたします。
...............+++++
........+++++
gpg: /Users/username/.gnupg/trustdb.gpg: 信用データベースができました
gpg: 鍵8966XXXXを絶対的に信用するよう記録しました
公開鍵と秘密鍵を作成し、署名しました。

gpg: 信用データベースの検査
gpg: 最小の「ある程度の信用」3、最小の「全面的信用」1、PGP信用モデル
gpg: 深さ: 0  有効性:   1  署名:   0  信用: 0-, 0q, 0n, 0m, 0f, 1u
pub   2048R/8966XXXX 2013-05-02
      指紋 = 37F6 3C6F E0C3 AAAA BBBB  4FF6 01B5 96BB XXXX YYYY
uid   Firstname USERNAME 
sub   2048R/E614XXXX 2013-05-02

% gpg --list-keys
/Users/username/.gnupg/pubring.gpg
---------------------------------
pub   2048R/8966XXXX 2013-05-02
uid   Firstname USERNAME 
sub   2048R/E614XXXX 2013-05-02

(3)gpgで暗号化の例
% cd /tmp; mkdir Dir; echo aaa > Dir/aaa.txt
% tar jcf Dir.bz2 Dir
% gpg -r 'Firstname USERNAME ' -e Dir.bz2
% ls -l Dir.bz2.gpg
-rw-rw-r--  1 username  wheel  493  5  2 23:08 Dir.bz2.gpg

(4)gpgで復号化の例
% gpg Dir.bz2.gpg
次のユーザーの秘密鍵のロックを解除するには
パスフレーズがいります:“Firstname USERNAME ”
2048ビットRSA鍵, ID E614XXXX作成日付は2013-05-02 (主鍵ID 8966XXXX)
パスフレーズを入力:
gpg: 2048-ビットRSA鍵, ID E614XXXX, 日付2013-05-02に暗号化されました
   “Firstname USERNAME ”

% tar jtvf Dir.bz2
drwxrwxr-x  0 username wheel       0  5  2 22:45 Dir/
-rw-rw-r--  0 username wheel       4  5  2 22:45 Dir/aaa.txt

※/usr/bin/zipcloak にてパスワードをかけるよりは、gpgによる暗号化の方が安心な気がする。

2013年5月1日水曜日

iMac-13 emacs-w3m

emacs-w3m をインストールする。

(1)w3m本体をbrewにてインストール
% brew install w3m
% /usr/local/bin/w3m -version
w3m version w3m/0.5.3, options lang=en,m17n,color,ansi-color,mouse,menu,cookie,ssl,ssl-verify,external-uri-loader,w3mmailer,nntp,ipv6,alarm,mark

(2)emacs-w3m は以下のようにインストール
% mkdir Develop; cd Develop
% touch ~/.cvspass
% cvs -d :pserver:anonymous@cvs.namazu.org:/storage/cvsroot login
% cvs -d :pserver:anonymous@cvs.namazu.org:/storage/cvsroot co emacs-w3m
% cd ..

% wget http://emacs-w3m.namazu.org/emacs-w3m-1.4.4.tar.gz
% tar zxf emacs-w3m-1.4.4.tar.gz
% mv emacs-w3m-1.4.4 emacs-w3m-1.4.4_cvs
% cp -r Develop/emacs-w3m/* emacs-w3m-1.4.4_cvs
% cd emacs-w3m-1.4.4_cvs
% ./configure --with-emacs=/Applications/Emacs.app/Contents/MacOS/Emacs --prefix=/usr/local 2>&1 | tee configure_log
% make 2>&1 | tee make.log
% make install 2>&1 | tee make_install.log
% mv /usr/local/share/emacs/site-lisp/w3m /Applications/Emacs.app/Contents/Resources/site-lisp/

(3).emacs.d/init.el には以下のように追加
(require 'w3m-load)

(autoload 'browse-url-at-point "browse-url" nil t)
(autoload 'browse-url-at-mouse "browse-url" nil t)
(autoload 'browse-url-of-buffer "browse-url" nil t)
(autoload 'browse-url-of-file "browse-url" nil t)
(autoload 'browse-url-of-dired-file "browse-url" nil t)

(autoload 'w3m "w3m" "Interface for w3m on Emacs." t)
(autoload 'w3m-find-file "w3m" "Find a local file using emacs-w3m." t)
(autoload 'w3m-search "w3m-search" "Search words using emacs-w3m." t)
(autoload 'w3m-weather "w3m-weather" "Display a weather report." t)
(autoload 'w3m-antenna "w3m-antenna" "Report changes of web sites." t)
(autoload 'w3m-namazu "w3m-namazu" "Search files with Namazu." t)

(add-hook 'dired-mode-hook
          (lambda ()
            (define-key dired-mode-map "w" 'dired-w3m-find-file)))
(defun dired-w3m-find-file ()
  (interactive)
  (require 'w3m)
  (let ((file (dired-get-filename)))
    (w3m-find-file file)))

(4)emacs-w3mの実行例
M-x w3m-browse-url
Emacs-w3m URL: http://www.google.co.jp

#URL入力でブラウズするよりは、dird-modeのファイルリスト画面からローカルhtmlファイルにカーソルを置いて"w"コマンドでブラウズすることが多い。TABLEタグの罫線の処理はわりときれいに表示される。