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タグの罫線の処理はわりときれいに表示される。

2013年4月29日月曜日

GalaxyNexus-01 4.2.2(JDQ39)

前出の Nexus7-01 4.2.2(JDQ39) 同様にGalaxyNexus(SC-04D)もNexus Root Tool kit(NRT_v1.6.3)にてアップデートした。

(1)NRT_v1.6.3を起動して、DeviceとBuildを選ぶ。
(2)USBケーブルをつなぎ[Full Driver Installation Guide -Automatic + Manual]ボタンを押しドライバ状態を確認したのち、[Flash Stock + Unroot]ボタンを押す。
次の画面で[OK]さらに[OK]を押す。

ダウンロードが始まり、
次々と書き込みステータスが現れて、これでAndroidバージョン4.2.1→4.2.2 ビルド番号JOP40D→JDQ39になったようだ。
ベースバンドバージョンは SC04DOMLE3→I9250XXLJ1 に変化した。
これはプラスエリアのサービスが使えなくなるという話のようだ。
 モバイル通信はXi契約のSIMにてspモードで問題なく設定できて、テザリングも機能している。
SC04DOMLE3 を保持したいときは、bigxie_maguro_OTA_JDQ39_odexed-signed.zip を使ってCWM(ClockWorkMod)にてアップデートするのが良いと思われる。

(3)Root化する
前出の Nexus7-01 4.2.2(JDQ39) 同様に[Root]ボタンを押す。

(4)SC04DOMLE3に戻す
ベースバンドバージョンを I9250XXLJ1→SC04DOMLE3 にする。
% md5 cwm-radio-SC04DOMLE3.zip
MD5 (cwm-radio-SC04DOMLE3.zip) = 7a6a5f7c1a7f5eeddd85ca551afdd817
をもらってきて、このradio.imgにて、
% md5 cwm-radio-SC04DOMLE3/radio.img
MD5 (cwm-radio-SC04DOMLE3/radio.img) = 31e0884665d878f2580a530aea93f5f5
cwm-radio-SC04DOMLE3>dir radio.img
2012/06/07  06:07        12,583,168 radio.img
Power+UP+DOWNのFastbootモードから、
cwm-radio-SC04DOMLE3>fastboot flash radio radio.img
    sending 'radio' (12288 KB)... OKAY [  2.053s]
               writing 'radio'... OKAY [  2.243s]
finished. total time: 4.316s
このように書き込んだ。
この機種はリファレンス機の用途で日常使わないが、戻せるならばとやってみた。

2013年4月26日金曜日

Nexus7-01 4.2.2(JDQ39)

(1)Nexus7のAndroidバージョン4.2.2のOTA(Over-The-Air)を放置していたのを、バージョンアップした。


[再起動してインストール]を選ぶと、Androidバージョン4.2.1→4.2.2 ビルド番号JOP40D→JDQ39になった。が、Rootが外れた。

(2)Root化する
毎回ハラハラしながら試行錯誤で作業しており手順が明確でないので断片要素のみを記載する。
・ググって NRT_v1.6.3.sfx.exe をダウンロードして、Win7機で実行する。
Toolkit v1.6.3の起動時にSelect device[Nexus7(Wi-Fi Tablet)] Android [4.2.2 - Build JDQ39]を選ぶ。

・Nexus7側の設定
設定>開発者向けオプション(開発者向けオプションが表示されてなければビルド番号を7回タップ)>USBデバッグON にする。
#USBケーブルつないだとき「USBデバッグを許可しますか?このパソコンのRSAフィンガープリント: ... 常に許可する」チェックしてOK
設定>セキュリティ>提供元不明のアプリ も念のため「インストールを許可」にしておく。
・Toolkit でドライバ確認
USBケーブルをつなぎ[Full Driver Installation Guide -Automatic + Manual]ボタンを押して、ドライバテストする。ドライバ未導入のときはStep 1が必要かも。
ドライバ状態が問題なければ、Driver Test Results > Success! となる。

・Root化
いよいよ[Root]ボタンを押す。
本当に良いか[OK]ボタンを押す。すると再起動を繰り返した。
そしてsuccessfully rooted: や Enjoy your rooted device! ^_^ をみて安心した。
SuperSUのログを示す。ADB shellやTitanium Backupも無事動いた。
当方の環境は前回Root化済だったNexus7の再Root化です。このサイト を参照すると良いようです。

2013年4月24日水曜日

iMac-12 Samba3

MacOSX 10.7.x(Lion)以降になってから、Android端末のESファイルエクスプローラからはユーザ名でファイル共有できなくなっていた。
brew の samba3 をインストールした。

(1)標準のファイル共有をオフにする
システム環境設定>ファイル共有:切
(2)netbiosdが動いているならオフにする
もし、</usr/local/Cellar/samba/3.6.8/var/log.nmbd>が
  lib/util_sock.c:667(open_socket_in)
  bind failed on port 137 socket_addr = 0.0.0.0.
  Error = Address already in use
になるならば、
# lsof -nP -iUDP|grep netbiosd を見て、
netbiosd   71       _netbios    3u  IPv4 0x9c1852d416cc8b7      0t0  UDP *:138
netbiosd   71       _netbios    4u  IPv4 0x9c1852d416cca3f      0t0  UDP *:137
であれば、netbiosdを無効にする。
# launchctl unload -w /System/Library/LaunchDaemons/com.apple.netbiosd.plist
(3)% brew install samba
</usr/local/Cellar/samba/3.6.8/etc/smb.conf>を用意する。
[global]
   workgroup = WORKGROUP
   server string = Samba 3.6.8
   passdb backend = tdbsam
   log level = 1
[homes]
   comment = Home Directories
   browseable = no
   read only = no
   create mask = 0644
   directory mask = 0775
   valid users = %S
% testparmを確認。
・ユーザを追加する
# /usr/local/bin/smbpasswd -a username
New SMB password:
Retype new SMB password:
Forcing Primary Group to 'Domain Users' for username
Forcing Primary Group to 'Domain Users' for username
Added user username.
このsmbpasswdで/usr/local/Cellar/samba/3.6.8/private/passdb.tdbが変化したようだ。
(4)sambaの起動を考える
あまり美しくないが、以下の独自</usr/local/sbin/samba>スクリプトを使うことにする。
#! /bin/sh
#$Id: /usr/local/sbin/samba,v 1.0 2013-04-24 14:49:49+09 root$
if [ `whoami` != "root" ]; then
   echo "Must be root."
   exit 1
fi
case "$1" in
   start)
      /usr/local/sbin/nmbd -D
      /usr/local/sbin/smbd -D
      echo "Start samba"
      ps -afx|grep -v egrep|egrep '^  UID|/usr/local/sbin/.mbd'
      ;;
   stop)
      killall smbd
      killall nmbd
      ;;
   status)
      echo "Status samba"
      ps -afx|grep -v egrep|egrep '^  UID|/usr/local/sbin/.mbd'
      echo "----------------------------------------------------"
      (cd /usr/local/Cellar/samba/3.6.8/var;ls -lh log.?mbd)
      echo "#################################################"
      echo "$ tail /usr/local/Cellar/samba/3.6.8/var/log.nmbd"
      tail /usr/local/Cellar/samba/3.6.8/var/log.nmbd
      echo "#################################################"
      echo "$ tail /usr/local/Cellar/samba/3.6.8/var/log.smbd"
      tail /usr/local/Cellar/samba/3.6.8/var/log.smbd
      echo "#################################################"
      /usr/local/bin/smbstatus
      ;;
   *)
      echo "Usage: $0 start|stop|status" >&2
      exit 3
      ;;
esac
exit 0
・このsambaスクリプトを起動時に以下のようにして動かす。
#私は .zprofile に追加している。
  ps ax|grep -v grep|grep /usr/local/sbin/smbd
  if [ $? != 0 ]; then
     sudo /usr/local/sbin/samba start
  fi
・現状では、これらにて、MacOSX10.6.x Snow Leopard時代と同様に、Android端末のESファイルエクスプローラからユーザ名でファイル共有できるようになった。

iMac-11 Eclipse

・Eclipse Juno(ユーノー) 4.2 SR2 Packages のダウンロード
Eclipse IDE for Java Developers, 150 MB 行の左 Mac OS X(Cocoa 64) を選ぶ。
ダウンロードして展開する。
% ls -l eclipse-java-juno-SR2-macosx-cocoa-x86_64.tar.gz
  157230106  2 27 03:00 eclipse-java-juno-SR2-macosx-cocoa-x86_64.tar.gz
% shasum eclipse-java-juno-SR2-macosx-cocoa-x86_64.tar.gz
bf8544b84eb42b00d421958ad9705cad7257db30  eclipse-java-juno-SR2-macosx-cocoa-x86_64.tar.gz

% tar zxf eclipse-java-juno-SR2-macosx-cocoa-x86_64.tar.gz
% mv eclipse /Applications
・Babelで日本語化
help>Install New Software
Work with: type or select a site の右 Add Repository
Name: Babel Update Site
Location: Babel Language Pack Update Site for Juno
http://download.eclipse.org/technology/babel/update-site/R0.10.1/juno
Babel Language Packs in Japanese を選ぶ。20item selectedとなった。

・Android Plugin
ヘルプ>新規ソフトウェアのインストール
作業対象(w): https://dl-ssl.google.com/android/eclipse/
□Developer Tools  を選ぶ。
□NDK Plugins    はC/C++を使わないので選ばない。
・Android SDKの位置指定
Eclipse>環境設定>Android
SDK Location: /Users/username/android-sdks
・Android SDKのPATHの追加
:/Users/username/android-sdks/tools と
:/Users/username/android-sdks/platform-tools を追加する
・SDK Manager
ウインドウ>Android SDK Manager にて必要なSDK Platformを選ぶ。