2012年11月22日木曜日

Subversion (SVN) Can't convert string from native encoding to 'UTF-8' エラーが出た時の対処法

Windows の cygwin 環境で Subversion を使っていると、次のエラーが出た。

Can't convert string from native encoding to 'UTF-8'

環境変数 LANG を LANG=ja_JP.UTF-8 にすれば OK。

export LANG=ja_JP.UTF-8

● Windows, cygwin, subversion, svn, UTF-8, encoding

2012年11月1日木曜日

Allied Telesis CentreCOM GS905LF

Allied Telesis CentreCOM GS905LF ギガビットイーサネットスイッチ。


一番の特徴は、フラッディングモードという機能を持っているということ。
筐体の一番左にあるディップスイッチを FLOODING に倒すと、
ポートで受信した全パケットを他の全ポートに転送してくれる。
シェアードハブのような使い方ができるということ。
お値段もお手頃価格。
2008 年から販売していたらしい。
知らなかった。
パケットをキャプチャする必要がある人は、必携のスイッチ! (今さら?)

● パケットキャプチャ, シェアードハブ, バカハブ, フラッディング, FLOODING, packet, capture

Windows の Emacs で ediff 使おうとすると cygwin の warning が出るときの対処法

Windows の Emacs で ediff を使おうとすると、cygwin の warning が出て、
比較ができない時の対処法。

こんなのが出ます。

cygwin warning:
  MS-DOS style path detected: c:/Users/[FILE_NAME]
  Preferred POSIX equivalent is: /cygdrive/c/Users/[FILE_NAME]
  CYGWIN environment variable option "nodosfilewarning" turns off this warning.
  Consult the user's guide for more details about POSIX paths:
    http://cygwin.com/cygwin-ug-net/using.html#using-pathnames

環境変数 CYGWIN に nodosfilewarning を設定すれば OK。
(設定後、Emacs を再起動)

変数名: CYGWIN
変数値: nodosfilewarning

● Emacs, ediff, cygwin, warning, MS-DOS style path detected, error, エラー

2012年10月20日土曜日

Emacs メモ

~/.emacs から ~/.emacs.d/* へ移行するときに気になったコトのメモ。
参考:
Emacs 実践入門

■ Emacs Lisp コメント暗黙ルール

;;; セミコロン 3 つは、見出し
;; 左端のコメントは、セミコロンが 2 つ
(hogehoge t) ; 行末のコメントは、セミコロンが 1 つ

■ Emacs Lisp 設定の反映方法

・Emacs を再起動する
・S 式 ( "(" 開きカッコから ")" 閉じカッコ(コッカ) で終わるコード ) の末尾で C-x C-e
・M-x eval-buffer RET : カレントバッファをすべて評価
・M-x eval-region RET : リージョン選択範囲を評価

■ Dropbox にバックアップ (Windows7 コマンドプロンプトでシンボリックリンク作成) 反映方法

C:\Users\MASAO\Dropbox\dotfiles\.emacs.d に実態を置く。

C:\Users\MASAO> cd %HOME%
C:\Users\MASAO> mklink /D .emacs.d "C:\Users\MASAO\Dropbox\dotfiles\.emacs.d"
.emacs.d <<===>> C:\Users\MASAO\Dropbox\dotfiles\.emacs.d のシンボリック リンクが作成されました

■ アライメント

下記のようにテキストを書いて、":" で綺麗に揃えたい場合、

AAA: 0001
BB: 0002
C: 0003

リージョンで選択して M-x align-regexp そのあとで、":" を入力すると、綺麗に整形される。

AAA : 0001
BB  : 0002
C   : 0003

■ フェイス

・Emacs で定義されているフェイス一覧を確認
    M-x list-faces-display RET

■ 簡単な計算は *scratch* バッファで行う

S 式書いて C-j

(+ 1 2 3 4 5)
15

● Emacs, windows, align, eval, 評価,

複数ファイルを処理するシェルスクリプトメモ

複数ファイルを処理するときのシェルスクリプトメモ。

カレントディレクトリのファイルを処理。

#!/bin/sh

files=(`ls -1`)

for file in ${files[@]}
do
# ここに処理を書く。

done
exit 0

これと awk を組み合わせる時のメモ

#!/bin/sh

LINE=2

files=(`ls -1`)

for file in ${files[@]}
do
    cat $file | awk --assign awk_var="$LINE" '
    {
        # 条件を書かないと必ず実行
    }
    NR == 1 {
        # 1 行目の場合の処理
    }
    NR == awk_var {
        # 2 行目の場合の処理
        # シェルの変数を assign オプションで awk に渡す
    }
    {
        # next を呼ぶとパターンマッチングせずに次の行を読み込む
        next
    }
    END {
        # テキストの最後に実行される処理
    }
    '
done
exit 0

■ 参考
http://shellscript.sunone.me/awk.html

● 複数, ファイル, 処理, シェルスクリプト, file, for, ファイルリスト

2012年10月7日日曜日

Windows のコマンドプロンプトでネットワークドライブに移動する方法

cd x: では、移動できないのか~。/d オプションで、ドライブを指定。

cd /d x:

● windows, コマンドプロンプト, ネットワークドライブ, cd, /d, change directory, command prompt, network, drive

2012年6月20日水曜日

winmail.dat がメールに添付されたときの対処法

メールに winmail.dat が添付されたときの対処法。
Outlook から リッチテキスト形式 で添付するとこうなるらしい。

■ Linux で開く場合 (tnef を使う)

(Ubuntu 10.10 で確認)
tnef というコマンドで解凍する。

# apt-get install tnef

$ tnef winmail.dat 

apt-get でインストールできない場合は、ソースを取ってきてコンパイルすれば良い。
http://sourceforge.net/projects/tnef/

■ Windows で開く場合 (Outlook 無しで)

Winmail オープナーを使う。
こっちの方が楽か。
http://www.eolsoft.com/jp/freeware/winmail_opener/

● Winmail.dat, 開く, 解凍, 開き方, 方法, tnef, 開けない, 開けん, winmail opener, オープナー

2012年6月6日水曜日

Word ファイルの修復方法 ( 開いて修復 )

何度開こうとしても、Word ファイルが開けない (破損した) 場合の修復方法。
自動的に修復してくれる場合もあるが、そもそも開いてもくれないことがある。
そんな時の対処法。

Word を起動して、「開く」から右の三角をプルダウンして、「開いて修復」を選択してファイルを開く。

● Word, 開けない, 修復, 開いて修復

Word 2003 がセーフモードでしか起動しない場合の対処法

Word 2003 がセーフモードでしか起動しなくなった場合の対処法メモ。
ファイルが破損しただけかと思ったら、どのファイルを開こうとしてもセーフモードになってしまう。

下記ファイルをリネームして、Word を起動しなおす。
うまく起動したら、リネームしたファイルは削除して良い。

C:\Documents and Settings\[LOGIN_NAME]\ApplicationData\Microsoft\Templates\Normal.dot

忙しい時に限って、こんなことが起こるんだよなぁ。

● Word, 2003, セーフモード, Normal.dot, 起動しない, 通常

2012年4月1日日曜日

Windows7 で X-Mouse (ウィンドウを前面に移動しない設定)

Windows7 で X-Mouse の設定をする方法。
「コンピュータの簡単操作」でもフォーカスするまではできるが、ウィンドウが前面に出てしまう。
前面に出したくない人向けの設定方法。
Windows7 (64bit) で確認。

1. regedit を起動し、HKEY_CURRENT_USER\Control Panel\Desktop を開く。

HKEY_CURRENT_USER\Control Panel\Desktop

2. UserPreferenceMask を変更する。

9e 3e 07 80 12 00 00 00 になっているので、下記のように変更。
Del 1 回押して、9f を入力。

9f 3e 07 80 12 00 00 00

3. ActiveWndTrkTimeout を変更する。

10進 で 50 を設定

4. 一旦ログオフして、再度ログインする。

参考:
http://sites.google.com/site/dejitarudezainfan/cygwin/mausunofokasu

● Windows7, Win7, X-Mouse, ウィンドウ, 前面, forcus, フォーカス, active, アクティブ, TweakUI

2012年3月24日土曜日

ネットワーク パケットを遅延させる

パケットを遅延させる方法。
まさおのブログ (表): Ubuntu でルータ (IPv4) と組み合わせて使うと応用が効く。
(確認した環境: Ubuntu 10.04)

eth1 から出力されるパケットに 500ms の遅延を追加する。

# tc qdisc replace dev eth1 root netem delay 500ms

(設定の確認)
# tc qdisc show
qdisc netem 8001: dev eth1 root refcnt 2 limit 1000 delay 500.0ms
qdisc pfifo_fast 0: dev eth0 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

設定を元に戻す。

# tc qdisc del dev eth1 root netem delay 500ms

(設定の確認)
# tc qdisc show
qdisc pfifo_fast 0: dev eth1 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth0 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

参考:
http://diary.sshida.com/20061103-7-diary.html
http://linux-biyori.sakura.ne.jp/setting/st_netem.php

● network, ネットワーク, packet, パケット, latency, 遅延, 追加, 遅らす, tc, delay, netem

2012年3月22日木曜日

Ubuntu でルータ (IPv4)

Ubuntu PC を NAT ルータ (IPv4) にするときのメモ。
(Ubuntu 10.04)

構成の概要はこんな感じ。

+-----------+           +-----------+           +------+
| Local Net |----[eth1]-| Ubuntu PC |-[eth0]----| 網側 |
+-----------+           +-----------+           +------+

1. NIC を増設。

各インターフェース eth0, eth1 に IP アドレスを設定。
(説明省略)

2. /etc/sysctl.conf を編集

# vi /etc/sysctl.conf

(下記コメントを外す)
net.ipv4.ip_forward=1

3. network を再起動

# /etc/init.d/networking restart

4. 設定を確認

/proc/sys/net/ipv4/ip_forward が 1 になっているか確認する。

# cat /proc/sys/net/ipv4/ip_forward
1

5. iptables で IP masquerade の設定

この設定後、eth1 側から ping で導通チェックする。

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

6. 起動時に IP masquerade が有効になるように設定

# iptables-save > /etc/iptables

# vi /etc/network/if-pre-up.d/iptables

(下記を記述)
#!/bin/sh
/sbin/iptables-restore < /etc/iptables

# chmod 755 /etc/network/if-pre-up.d/iptables

7. eth1 側に DHCP サーバで IP アドレスが振れるように設定。

下記参照。
まさおのブログ (表): Ubuntu で DHCP サーバ

参考:
http://www.sa-sa-ki.jp/blog/2009/11/ubuntu/

● ルータ, router, PC, IPv4, NAT, masquerade, iptables

2012年3月20日火曜日

Ubuntu で proxy サーバ ( squid )

Ubuntu で proxy サーバを立てる時のメモ。
(Ubuntu 10.04)

1. squid をインストール

apt-get で。

# apt-get install squid

2. squid.conf の設定

# vi /etc/squid/squid.conf

(port を 8080 に設定)
http_port 8080

(アクセス許可ネットワークの設定。既に下記は設定されている)
acl localnet src 192.168.0.0/16

(上記 localnet からのアクセスを許可)
http_access allow manager localhost の下に下記を追加  (※ local"host" ではない local"net")

http_access allow localnet

3. squid を起動 (または再起動)

# /etc/init.d/squid start

( 再起動 )
# /etc/init.d/squid restart

■ basic 認証を追加する設定例

パスワードを設定。

# apt-get install apache2-utils
# htpasswd -c /etc/squid/squidpasswd 

basic 認証を有効化する設定を squid.conf に追加。

# vi /etc/squid/squid.conf

(下記を設定)
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squidpasswd

■ 多段 proxy の設定例

上位 proxy サーバの IP アドレスが 192.168.10.1 で、ポートが 8080 の場合の例。

# vi /etc/squid/squid.conf

(下記を設定。icp ポート (上位 proxy キャッシュ) を使用しない場合は 7 を設定)
cache_peer 192.168.10.1 parent 8080 7 no-query

(すべてのリクエストを上位 proxy サーバに転送)
never_direct allow all

● squid, proxy, プロキシ, プロキシーサーバ, 設定, 多段, 認証, password, パスワード

2012年3月15日木曜日

svn diff でバイナリファイルを含めてパッチを作る

svn diff で、パッチを作るときに、バイナリファイルも含めた形でパッチを作る方法。
調べようと思ったら、ググり方が難しい。
結構、利用シーンは、あると思う。
リビジョン、リポジトリの指定は適当にアレンジ。

$ svn diff -r N:M --force --diff-cmd /usr/bin/diff -x '-auN --binary' > hogehoge.patch

● Subversion, サブバージョン, svn, diff, 差分, binary, バイナリ, バイナリファイル, patch, パッチ

2012年3月6日火曜日

Ubuntu で CRC32

Linux で、ファイルの CRC32 をお手軽に取得する方法を調べたところ、
標準的なコマンドは無いみたいだ。なんでだ!?
cksum というコマンドがあるが、これはちょっと違う。

Perl スクリプトの crc32 を使うのが手っ取り早いようだ。
Ubuntu の場合、libarchive-zip-perl というパッケージ名で提供。

Perl に依存してしまうが、これが一番早そう。
自分でコードを書けってことなんかな。

# apt-get install libarchive-zip-perl

$ crc32 hogehoge

● CRC32, libarchive-zip-perl, cksum

2012年2月22日水曜日

Ubuntu で Subversion サーバ

Ubuntu で Subversion サーバを立てる時のメモ。
(Ubuntu 10.04, subversion-1.7.3)
ソースからビルドして導入。

1. Subversion のソースをダウンロード

http://subversion.apache.org/ からたどる。

2. xinetd, libapr, libapr-util をインストール

# apt-get install xinetd libapr1-dev libaprutil1-dev

3. ソースコードを展開してビルド、インストール

$ tar zxvf subversion-1.7.3.tar.gz
$ cd subversion-1.7.3
$ ./configure
$ make
# make install

4. /etc/xinetd.d/svn を作成し、xinetd をリスタート

# vi /etc/xinetd.d/svn
(下記の内容を記述)

service svn
{
        disable                 = no
        socket_type             = stream
        protocol                = tcp
        wait                    = no
        user                    = root
        server                  = /usr/local/bin/svnserve
        server_args             = -i -r /opt/svn           (← Subversion 用ディレクトリ)
        env                     = LANG=ja_JP.UTF-8
        passenv                 = LANG
}

(xinetd をリスタート)
# /etc/init.d/xinetd restart

5. Subversion 用ディレクトリの作成

# mkdir /opt/svn
# groupadd svn
# chown -R :svn /opt/svn
# chmod -R 770 /opt/svn
# chmod g+s /opt/svn
# umask 002

# usermod -G svn masao     (ユーザ masao を svn グループに追加。※アクセスする人すべて追加が必要)

6. telnet コマンドで動作確認

$ telnet localhost 3690

Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops atomic-revprops partial-replay ) ) )

(success が見えれば OK。quit で抜ける)

7. リポジトリ作成

hogehoge というリポジトリを作成する例。

# umask 002
# cd /opt/svn
# svnadmin create hogehoge

rep-cache.db のモードを変更しておく。リポジトリを作った人の権限になるため。

# chmod 664 /opt/svn/hogehoge/db/rep-cache.db

8. リポジトリのディレクトリ構成例

hogehoge/trunk   (トランク)
        /tags    (タグ用)
        /branch  (ブランチ用)

9. リポジトリへのアクセス例 (check out)

$ svn co svn+ssh://192.168.0.10/opt/svn/hogehoge/trunk

10. その他メモ

■ファイル名文字コード変換

$ kcc -c filename
$ convmv -r -f euc-jp -t utf-8 * --notest

■文字コード変換 (Windows 系からリリースされたソースをインポートするときとか)

$ find . -type f | xargs -n 10 nkf -w -Lw --overwrite
  (UTF-8 CR+LF)

■バイナリ テキスト 誤認識変更

(確認)
$ svn propget svn:mime-type *

(テキスト→バイナリ)
$ svn propset svn:mime-type application/octet-stream *.pdf

(バイナリ→テキスト)
$ svn propset svn:mime-type text/x-tex hoge.tex
$ svn propdel svn:mime-type hoge.tex
$ svn commit -m ''

■実行権変更

$ svn propset svn:executable ON hogehoge.sh

■再帰的に add

$ svn add * --force

■無視ファイルを登録する

(チェック)
$ svn status --no-ignore

$ svn status --no-ignore | grep -v ^A
(結果を編集して svn add)

● Subversion, サブバージョン, サーバ, server, svn, svn+ssh

2012年2月18日土曜日

Firefox Google toolbar 代替

現在、Ubuntu 10.04 環境の Firefox バージョンは 10.0.1。
Google Toolbar が Firefox で正式にサポートされなくなったのは、5.0。
Add-on Compatibility Reporter でずいぶん引っ張って使ってましたが、そろそろやめようかなと。

機能的に欲しい (使っている) のは、以下のとおり。
この他の機能を使ってた人も、多分探せば代替手段は見つかるはず。

  • 検索窓
  • 検索キーワードのハイライト
  • ページ内検索 (検索窓に入れた文字列で)
  • Google サービスへのリンク
  • ページ翻訳
Add-ons説明
Add to Search Bar任意のサイトの検索窓を追加
SearchWP検索キーワードのハイライトとページ内検索
SearchBox Sync検索エンジンと検索窓のキーワードを同期
Google ShortcutsGoogle サービスへのリンクをツールバーに追加
Searchbar Autocomplete Order検索履歴の表示順序を変更
Google 翻訳ブラウザボタンブラウザのボタンのリンクをブックマークツールバーにドラッグ

■検索窓の横に履歴表示ボタンを追加する

userChrome.css ファイルを編集します。

$ vi ~/.mozilla/firefox/********.default/chrome/userChrome.css

#searchbar .autocomplete-history-dropmarker {
display: -moz-box !important;
-moz-binding: url("chrome://global/content/bindings/autocomplete.xml#history-dropmarker");
}

■検索窓の履歴を消去する

1 個ずつ消すなら行を選択して Shift+Delete。
一括で消したい場合は、検索窓で 「 右クリック 」 → 「 Clear Search History 」

■関連記事
まさおのブログ (表): Firefox アドオンについて

● Firefox, Linux, Google toolbar, 代替, 同機能, 実現, グーグル ツールバー

2012年2月13日月曜日

CPU に負荷をかけるシェルスクリプトメモ

CPU に負荷をかけるシェルスクリプトメモ
10 秒間負荷をかける (sleep のところは適当に調整)
うちの PC (デュアルコア) でやったら、50 % までしか負荷がかからんやった。

#!/bin/sh
(sleep 10 ; kill $$) &
while [ 1 ]; do
    x=1
done

■ 2015/05/16 追記 yes コマンドを使う方法の方が簡単そう。

yes > /dev/null

更に負荷をかけたい場合は、バックグラウンドで実行

yes > /dev/null &
yes > /dev/null &
yes > /dev/null &

止めたいときは、killall yes とかでいけるか?

● CPU, 負荷, シェルスクリプト, shell script, 100%, usage, yes, 過負荷, 高負荷