]
トップ 最新 追記

Yukiharu YABUKI の tDiary



このtDiaryを検索します。

2008-12-01 師走開始 [長年日記]

_ いよいよ12月です。

師走に入りました。

_ bmobile

(http://www.bmobile.ne.jp/personal/3g/index.html)使う月と使わない月がある場合には、こっちの方が便利なこともあるかもね。

_ 新聞紙でバッグ

(http://www.shimanto-tennen.com/shinbun.html) これは eco だ。田舎でも、こんな風に商売できるのはすばらしい。

_ GNUPLOT

インタラクティブにグラフを確認した後に、batchでグラフを書くのに便利だ。oocalcは入力フロントエンドにつかって、csv出力し、awk(gawk)にデータを操作させて、同じグラフ上にデータを重ねて出力する。

本当は、 OOo の calc でやりたかったけど、やり方が判らず GNUPLOT でやってしまった。グラフを書くだけなら GNUPLOT がちょうど良い。これ以上の解析をしてグラフを書くならRとかになるかなぁ


2008-12-02 [長年日記]

_ DOS(or WindowsのDOSプロンプトからftpコマンドを自動実行

(http://www.ponko2.com/ftp_bat.html)ファイル名に日付と時刻を入れたいなどのことがしたい場合は、perlとかのスクリプトを呼ぶのか。bash の `date +'%Y-%m-%d-%S-%M'`とかでファイル名を作れないからなのでしょうね。

本日のツッコミ(全1件) [ツッコミを入れる]

_ n_saito [echo %DATE:/=-%-%TIME:~6,2%-%TIME:~3,2%]


2008-12-03 [長年日記]

_ 新しいノートPCの時刻補正

Lenovo Think pad X200 に Debian GNU/Linux Lenny を入れてから、設定するのを忘れていたものに、時刻補正がある。先日、友人に「ログを取るなら時刻同期大事だよね」という話をしていて、ハッと思い出した。

yabuki@yelona:~$ /usr/sbin/ntpdate -qu ntp.nict.jp
server 133.243.238.243, stratum 1, offset 0.348931, delay 0.10559
server 133.243.238.244, stratum 1, offset 0.348479, delay 0.10559
server 133.243.238.163, stratum 1, offset 0.349162, delay 0.10487
server 133.243.238.164, stratum 1, offset 0.344493, delay 0.11557
 3 Dec 12:59:12 ntpdate[32702]: adjust time server 133.243.238.163 offset 0.349162 sec

一般ユーザで、ntpdateを実行すれば、誤って時刻変更をしてしまう可能性もないから、ntpdate を導入してやっってみるといい。最初は2秒ぐらいずれてました。あわてて root で ntpdate を実行して、補正しましたよ。

_ UE-200TX-G(usb ethernet)

ゲームコネクト USB2.0 LANアダプタ (Wii対応) UE-200TX-G を購入、Debian GNU/Linux Lenny + kernel 2.6.27の環境でどんなdmesgがでるか表示してみた。 NetworkManager は、ちゃんと usb ethernet を認識している。

Lenovo Think Pad X200 に使っていた、 wire を usb nic につなぎ直してみたら、ちゃんと認識して通信し始めた。

Dec  3 23:09:22 yelona kernel: [472979.016138] usb 5-1: new high speed USB device using ehci_hcd and address 24
Dec  3 23:09:22 yelona kernel: [472979.162543] usb 5-1: configuration #1 chosen from 1 choice
Dec  3 23:09:22 yelona kernel: [472979.164717] usb 5-1: New USB device found, idVendor=0b95, idProduct=7720
Dec  3 23:09:22 yelona kernel: [472979.164730] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Dec  3 23:09:22 yelona kernel: [472979.164736] usb 5-1: Product: AX88772 
Dec  3 23:09:22 yelona kernel: [472979.164740] usb 5-1: Manufacturer: ASIX Elec. Corp.
Dec  3 23:09:22 yelona kernel: [472979.164745] usb 5-1: SerialNumber: 000001
Dec  3 23:09:22 yelona NetworkManager:  [1228313362.888350] nm_hal_device_added(): New device added (hal udi is '/org/freedesktop/Hal/devices/usb_device_b95_7720_000001').
Dec  3 23:09:23 yelona kernel: [472980.243213] eth1: register 'asix' at usb-0000:00:1d.7-1, ASIX AX88772 USB 2.0 Ethernet, 00:90:cc:e7:44:da
Dec  3 23:09:23 yelona kernel: [472980.243267] usbcore: registered new interface driver asix
Dec  3 23:09:23 yelona NetworkManager:  [1228313363.982389] nm_hal_device_added(): New device added (hal udi is '/org/freedesktop/Hal/devices/usb_device_b95_7720_000001_if0').
Dec  3 23:09:23 yelona NetworkManager:  [1228313363.985489] nm_hal_device_added(): New device added (hal udi is '/org/freedesktop/Hal/devices/usb_device_b95_7720_000001_usbraw').
Dec  3 23:09:24 yelona NetworkManager:  [1228313364.101444] nm_hal_device_added(): New device added (hal udi is '/org/freedesktop/Hal/devices/net_00_90_cc_e7_44_da').
Dec  3 23:09:24 yelona kernel: [472980.469223] eth1: link down
Dec  3 23:09:24 yelona kernel: [472980.470896] ADDRCONF(NETDEV_UP): eth1: link is not ready
Dec  3 23:09:24 yelona NetworkManager:   eth1: Device is fully-supported using driver 'asix'.
Dec  3 23:09:24 yelona NetworkManager:   nm_device_init(): waiting for device's worker thread to start
Dec  3 23:09:24 yelona NetworkManager:   nm_device_init(): device's worker thread started, continuing.
Dec  3 23:09:24 yelona NetworkManager:   Now managing wired Ethernet (802.3) device 'eth1'.
Dec  3 23:09:24 yelona NetworkManager:   Deactivating device eth1.

2008-12-04 [長年日記]

_ UE-200TX-G(usb ethernet)を、Debian GNU/Linux Etchにつないでみた

UE-200TX-G(usb ethernet)の続き。Debian GNU/Linux Etch の標準カーネルである kernel 2.6.18 に繋いでみたときの結果

Dec  4 10:44:43 localhost kernel: usb 4-4: new high speed USB device using ehci_hcd and address 9
Dec  4 10:44:43 localhost kernel: usb 4-4: configuration #1 chosen from 1 choice
Dec  4 10:44:44 localhost kernel: eth3: register 'asix' at usb-0000:00:1d.7-4, ASIX AX88772 USB 2.0 Ethernet, 00:90:cc:e7:44:da
Dec  4 10:44:44 localhost kernel: usbcore: registered new driver asix

なんか、認識してるっぽい。あとで使ってみるか。


2008-12-05 [長年日記]

_ iperfの-dオプション

iperfクライアントから-dオプションを用いて、同時に回線の上りと下りの計測をしたい場合、うまく下りが計測できる時とできない時がある。iperfのBTSをみても、それらしいのはないから、こちらの使い方の問題なんだろう。

うまくいかない例

yabuki@aegis:~$ iperf -s -l 1360
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local xxx.xx.xxx.xxx port 5001 connected with xxx.xx.xx.xxx port 37384
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0- 9.8 sec    341 KBytes    285 Kbits/sec
connect failed: Connection refused
write2 failed: Broken pipe
------------------------------------------------------------
Client connecting to xxx.xx.xx.xxx, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  4] local 0.0.0.0 port 56883 connected with xxx.xx.xx.xxx port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0- 0.0 sec  0.00 Bytes  0.00 bits/sec

うまくいった例

yabuki@yelona:~$ iperf -s -l 1360
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local xxx.xx.xx.xxx port 5001 connected with xxx.xx.xxx.xxx port 60968
------------------------------------------------------------
Client connecting to xxx.xx.xxx.xxx, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  5] local xxx.xx.xx.xxx port 59697 connected with xxx.xx.xxx.xxx port 5001
Waiting for server threads to complete. Interrupt again to force quit.
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.4 sec    215 KBytes    170 Kbits/sec
[  4]  0.0-10.6 sec    814 KBytes    632 Kbits/sec

iperfの組み合わせか? クライアントから-Lオプションをつけると下記の結果を得た。しかし、まだ繰り返してテストしてみないとわからない。

yabuki@yelona:~$ iperf -c xxx.xx.xxx.xxx -L 12222 -l 1360 -d
------------------------------------------------------------
Server listening on TCP port 12222
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to xxx.xx.xxx.xxx, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  5] local xxx.xx.xx.xxx port 37582 connected with xxx.xx.xxx.xxx port 5001
[  4] local xxx.xx.xx.xxx port 12222 connected with xxx.xx.xxx.xxx port 57865
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.5 sec    175 KBytes    137 Kbits/sec
[  4]  0.0-11.5 sec    352 KBytes    251 Kbits/sec

_ memo:対照的な2つのネットワークトラフィック監視ツール:NetHogsとIPTraf

(http://sourceforge.jp/magazine/08/12/04/0152229/)ちょうど、こんなツールが欲しかったので、いきなり両方とも aptitude install して使い始める。

2つを使い分けて、実験してみるとテイストが違う。私は nethogs が気に入ったが、別の人は、iptraf が気に入ったようだ。ちょっと使い続けて情報交換してみよう


2008-12-06 [長年日記]

_ 忘年会

12月に入ったので、忘年会で宴会の機会が増える。7、11、12、15、21、27日はほぼ確定で、28日以降に少なくとも2つぐらいある予定

_ 積ん読キューへ入れる本

コンサルティングの悪魔―日本企業を食い荒らす騙しの手口(ルイス ピーノルト/Lewis Pinault/森下 賢一) 買うか、借りるかして冬休みぐらいには読みたい。たぶん心がささくれ立つと予想されるので、しゃべれどもしゃべれども (新潮文庫)(佐藤 多佳子) あたりも読んで、バランスを取ってみようかと。

最近は役に立ちそうな、ソフトウェア系や実務系の本ばかり読んでいる。たまには昔みたいに、ただ楽しみのための読書もしてみたい。っておもっても、これどこかで使えるかな....と考えてしまうのは役割が代わったことによる習い性かもしれません。

_ 本日客先へ出勤

結局、行けそうにありません。すいません。

_ 年末調整

税理士さんと手分けをして進みました。あとは今月支給の給与計算を、今日か明日にやれば...


2008-12-08 [長年日記]

_ catdocパッケージ

MS word/excel/powerpointのデータを取り出す。今回、私は xls2cvs を利用してみようと思う。

インストールして man を読む


2008-12-09 [長年日記]

_ Darkstat:Linuxで使える簡易トラフィック追跡ツール

(http://sourceforge.jp/magazine/07/12/11/0126238)グラフで見えるのがすばらしい。GIGAZINEでも記事になっているのは見た。

darkstatのオプションで、-rというオプションがあり、pcap形式のデータを読み込むとmanには書いてある。この記述だけをみると、-rオプションで読み込んだpcapデータからグラフを生成してくれるに違いないと思うのだが、ところがhttp://localhost:667/にアクセスできない。

ソースを眺めてみた所、-rオプションは、darkstatのデータベースにデータを入れて終了している。

static void
run_from_capfile(void)
{
   graph_init();
   hosts_db_init();
   cap_from_file(capfile, filter);
   cap_stop();
   if (export_fn != NULL) db_export(export_fn);
   hosts_db_free();
   graph_free();
}
で、mainからは下記のように呼び出されている。
   if (capfile) {
      /*
       * This is very different from a regular run against a network
       * interface.
       */
      run_from_capfile();
      return 0;
   }

これはどんな風に使うのがいいのかなあ。データベースにデータを入れてから、もう一度-iでinterfaceを指定してグラフを見るべきだんだろうか。

ちなみに、オプションの-rと-iは排他オプションで、同時には使えない。

_ よく判らないデータを解析するには

データの傾向がよく判っているなら適切な解析方法を選べばいい。傾向がよく判らないデータは、最初に多変量解析をかけて見てはどうだろうか。という話をきいた。

_ Rを使っているよという話をちらほら聞くようになった。

Rをもっと使いこなせるようになると楽しいだろうなあ。社会科学系の方々なども使い始めていると聞いた。

_ USBで温度と湿度を測る。

部屋の温度と湿度のグラフ化ができるな。(http://www2.strawberry-linux.com/products/usbrh/)

_ IRCで利用されているGoogleBotの使い方

(http://wiki.fdiary.net/NadokaWiki/?googlebot)って、見たことはあるんだが使い方がようやくわかった。

以下脱線します。秘密のお話をするには、社内ネットワークにIRCサーバを立てて社外からは繋がせない。というのがいいんじゃないでしょうか。SSLでIRC接続させたり、SSHのポートフォワードをさせたりというのは、気がつく奴は自分でもなんとかできる手段を残しておけばいいだろうし。

skypeの上で情報をやりとりするのは気を使います。つまり、skype chatでは公開できる情報だけ流して、非公開情報は、安全な経路をもったサーバ上にドキュメントを置くなどの手段を常に意識する必要があります。

_ skype chat log を検索する。

skype chatのログを検索したい場合は、ログをtxtでgrepを使えると楽ですが、skype chatのログをtxtにする方法がわからないので困ってました。そこで(http://blog.lares.jp/log/eid1539.html)にあるコマンドをLinux Clientから実験してもうまくいったので、記録しておきます。これでガンガンとログを検索できます。


2008-12-10 [長年日記]

_ GNUPLOTで時間を扱う時のメモ

GNUPLOTの出力するグラフで、時間をグラフの軸に表す場合は、まず(http://t16web.lanl.gov/Kawano/gnuplot/datetime.html)を見て欲しい。使いこなすgnuplot(大竹 敢/矢吹 道郎)は、いい本なんだけど、少なくとも索引および付録のコマンド一覧にset xdataなどの説明がないので、新しい改訂版が出るといいなと思います。

で、PLOT文に指定するデータファイルの内容が、必ず入っていることが重要です。つまりファイルを指定しているのに内容が空の場合は、ケースバイケースですが、ダミーデータでいいから入れましょう。gnuplot FAQ(http://takeno.iee.niit.ac.jp/~shige/unix/gnuplot/gnuplot.html#gp-FAQ-j)に書いてありました。データがない場合は、?などの文字を使うでないと"Need full using spec for x time data"というエラーメッセージを見ることになるでしょう。

参考例How To (NTP時刻を年月日表示へ)(http://groups.google.co.jp/group/network-space-time/browse_thread/thread/a27c8e6aedb2b978)


2008-12-11 [長年日記]

_ 小さくて、できれば thread で動く httpd

apacheの

apache2-mpm-worker - Apache HTTP Server - high speed threaded model
が頭に浮かぶかもしれない。しかし、組み込みのような限定された環境だともっと小さいものが好ましい。
apt-get source boa
して、Debian GNU/Linux Lenny に含まれている boa のソースを読んだが、単一のプロセスでソケットの多重化をしており、cgiのみ fork する実装であった。

sourceforge.orgを検索してみて、nullhttpdを見つけた。よさげかと思ったが、開発が終了しているようであり、(http://packetstormsecurity.org/0309-advisories/nullhttpd.xss.txt)な指摘があるが、直されていない。

2009.08.11更新 sourceforgeの本家(http://sourceforge.net/projects/nullhttpd/)(http://aluigi.altervista.org/search.php?src=nullhttpd)で指摘されているのは同じなのか別なのか、テストしてから使った方がよさそう。本家の方は、404のXSSについて直してあるのと、DNS lookup に問題がある件はなおしているとtrackerに上がっているが、指摘している問題とぴったり呼応しているか(bad request 400問題とリソースが食いつぶされる件)は、わたしにはよくわからない。なのでテストがいるだろうなと。

lighttpd は良い選択だと思う。FAST CGI や PHP も使える。待ち受けのプロセスの数も制限できる。デフォルトは0なので、単一スレッド単一プロセスでソケット通信待ちの多重化をしているのだろう。

apt-get source lighttpd
して、server.cを読んでみると良い。1005行目あたりから、#ifdefが多いのと、でかいので読みづらいと思うけど。

_ 100M ether のスピードでパケットキャプチャーするには

昔のいわゆる馬鹿ハブは、パケットキャプチャーし放題だった。しかしスイッチングハブが普及してきたおかげで、100Mのスピードでパケットキャプチャーする環境を作るには、それなりの機器を導入しなくては、パケットをキャプチャーすることが難しくなってきた。

アライドテレシス CentreCOM GS905LF スイッチ レイヤー2スマートスイッチ/レイヤー2スイッチ(GbE) 0368Rを使えば、比較的安価に100Mのスピードでも、ノートPCなどのNICが100M以上でCPUが追いつけばデータをとり続けることができる。安価といっても、今の時点では1万円を超えていますけど。

もう一つ、上記のスイッチを使って良い点は、電源がACアダプターじゃない。ただし3足のプラグです。この手の製品を買おうかと思っている人なら3足プラグを2足に変換するプラグはいっぱいもっているだろうけど、持ってない場合は少し慌てるかもしれないので先に書いておきます。

Linux では wireshark や tcpdump を使ってネットワークの研究/通信のデバッグ/怪しげなパケットが流れていないかの確認ができます。


2008-12-12 [長年日記]

_ 入退室の管理

コンプライアンスの遵守が叫ばれて久しい。プライバシーマークの実施で入退室管理のことをコンサルテーションの方に聞くとたいていは、ICカードによる入退室を勧められる。

実際多くの企業さんでも、ICカード導入の事例を見てきている。脱線するが、ICT稼業をやっていると、ICカードを導入することでの悲喜劇を見たりすることもある。たとえばお客さんが来たときに一人でトイレにいったら戻ってこれないとか。

話を戻して、プライバシーマークの実施において規定されているのは、入退室管理なので最初からICカードありきではなく、事務所への出入りを記録する方法を定めて実施すればよい。たとえば鍵の管理を台帳に書き込んでもらう実装もありだ。場所がいっぱいあるなら、ビジネスの打ち合わせに使えるパブリックスペースと作業場所が分かれていると良いのだろう。こういう場合はレンタルオフィスなどが便利かもしれない。

本日のツッコミ(全2件) [ツッコミを入れる]

_ n_saito [ICカードが勧められるのは記録が簡単になるからってことと、手での記録より、記録の完全性が担保されやすいからかと。 ..]

_ yabuki [はい。人間が運用する場合、恣意的に運用されてしまうことがあるので、(n_saitoさんには釈迦に説法ですが、他にコメ..]


2008-12-14 [長年日記]

_ 年末準備#1

今年も残す所、約半月である。年越し準備をちょっとづつ進めている。年賀状も慌てなくて済むように準備ができそう。


2008-12-15 [長年日記]

_ shaperd

Linux Advanced Routing & Traffic Control HOWTODebian GNU/Linux Lenny での traffic shape 検索結果の続き。

研究の必要性を感じて、shaperdもインストールして、/usr/share/doc/shaperd/配下を覗いてみた。wondershapterよりも経路毎に細かい制御ができる設定ファイルを書くことができる。人によってはこちらの方が使いやすい人がいるだろう。

yelona:~# aptitude install shaperd
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます      
パッケージの状態を初期化しています... 完了
タスクの記述を読み込んでいます... 完了        
以下の新規パッケージがインストールされます:
  shaperd 
更新: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
41.9kB のアーカイブを取得する必要があります。展開後に 201kB のディスク領域が新たに消費されます。
拡張状態情報を書き込んでいます... 完了
取得:1 http://http.us.debian.org lenny/main shaperd 0.2.1-5.2 [41.9kB]
41.9kB を 4s 秒でダウンロードしました (9442B/s)
パッケージフィールドを読み込んでいます... Done                 
Reading package status... Done                                   
Retrieving bug reports... Done
Parsing Found/Fixed information... Done
未選択パッケージ shaperd を選択しています。
(データベースを読み込んでいます ... 現在 175179 個のファイルとディレクトリがインストールされています。)
(.../shaperd_0.2.1-5.2_i386.deb から) shaperd を展開しています...
man-db のトリガを処理しています ...
shaperd (0.2.1-5.2) を設定しています ...
# See the examples dir in /usr/share/doc/shaperd and replace this file
You can't use shaperd, until you write the config file for it.
Please see the examples dir in /usr/share/doc/shaperd, and create
the /etc/shaperd/shaperd.conf configuration file!
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます       
パッケージの状態を初期化しています... 完了
拡張状態情報を書き込んでいます... 完了        
タスクの記述を読み込んでいます... 完了  

2008-12-16 [長年日記]

_ arpが絡むとはいえ、UDPデータグラムが消失するからくりは、なかなかぱっと思いつかないよね。

Windowsでの話。[INFO] MTU より大きな UDP データグラムが通知なしに破棄される

Windows以外のOSでの実装はどうなんでしょうか。

_ ICMP source quench

ICMPの記事(http://www.atmarkit.co.jp/fnetwork/netcom/netcom01/netcom01.html)は2001年であるので書いていないが、「source quench:軋轢発生による転送抑制指示」は、2004年12月と記載されている(http://www.watersprings.org/pub/id/draft-gont-tcpm-icmp-attacks-03.txt)に、簡単にスループットを落とす手段を提供しているとして、注意が喚起されている。

元々は、ICMP source quench は、「そんなに、いっぱい送られてもこまっちゃうよ」というお返事をデータの送信元に送り返すことで、簡単なフロー制御を行っていた。TCPの場合なら、初期のスロースタートの状態に戻すし、UDPの場合なら送信レートを落としていた。ただし、これらの挙動は必須ではなかった。

しかし、上記の仕組みを悪用して、スループットを劇的に下げる攻撃が出たため、RHは(http://www.jp.redhat.com/support/errata/RHSA/RHSA-2005-017J.html)を出したし、CISCOは、(http://www.cisco.com/JP/support/public/ht/security/102/1021599/cisco-sa-20050412-icmp-j.shtml)の対策を打ち出した。

上記のインターネットドラフトにより、RHとCISCOは対策をした。でも、Linuxカーネルは、/proc/配下の設定で、source quench を出すのを辞めてしまったのかの理由は、私はまだ見つけていない。

_ shaper と ICMP source quench

ということで、traffic shaper が流量を絞った場合に、送信したクライアントに関して ICMP source quench の元々の意義を考えると、shap してパケット落ちが発生したときに、送信量を下げろというために使うのは、いまとのなっては、どのぐらい意味のあることなのだろうか? と思う。上記のドラフトがでてからはICMP source quench を無視する実装がどのぐらい増えているかも気になる。

_ tc qdisc

読み方は、(http://www.linux.or.jp/JF/JFdocs/Adv-Routing-HOWTO/lartc.qdisc.classless.html)のpfifo_fastの部分を参照せよ。TOSの値の組み合わせが「0」から「F」まで表示されていることに着目注意せよ。

yelona:~# tc qdisc
qdisc pfifo_fast 0: dev eth0 root bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev wmaster0 root bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev wlan0 root bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev ppp0 root bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

_ http.elのタイムアウト値を伸ばしてみた。

netfort.gr.jpの、loadavg が 9とか11の数字になっており、tdiary.el が tdiary からの HTML 取得に 10 では失敗するので http.el の中をみて、タイムアウト値を10秒から30秒へ変えて様子を見ることにした。

大量のspamがfmlに襲いかかっていて、loadavgが上がっていた模様。bad receipt 原因となるメールアドレスを登録してもらい、loadavgが平和な数値になった。ということで、http.elのタイムアウト値を小さくして快適になった。

_ JFプロジェクトの web 掲示板

MLは、はやらないためか。sourceforge.jpにweb掲示板ができたようですね。(http://sourceforge.jp/forum/forum.php?forum_id=15237)

_ linux-source-2.6.(18|27)/net/sched/sched/sch_tbf.(c|h)

tcのqdisc tbfは、このあたりと連携しているに違いない。

yelona:/usr/src/linux-source-2.6.27/net/sched# wc sch_tbf.c
  493  1519 11324 sch_tbf.c
yabuki@Ernalda:~/src/linux-source-2.6.18/net/sched$ wc sch_tbf.c
  543  1605 12308 sch_tbf.c

カーネルバージョン/net/sched ディレクトリにある、Kconfigをみて、よりそう思った。

sch_api.c および sch_generic.c は眺めておかないと、見落としが出るかも。

_ HandBrake日本語版

(http://sourceforge.jp/projects/handbrake-jp)どんなプロジェクトかというと、概要の引用を下記にしておきます。

オープンソースかつマルチプラットフォームの動画エンコーディングツール「HandBrake」(http://handbrake.fr/ )日本語版を作成・提供するプロジェクトです。
HandBrakeは、DVDやDVDのISOイメージをメディアプレーヤーやPS3/Xbox360/PSPなどのゲーム機などで再生できる形式に変換できるエンコードツールです。オープンソースで開発されており、WindowsやLinux、Mac OS Xで動作します。
オリジナルのHandBrakeは、複数の有志によって開発されていますが、海外の開発者が開発をしているため、いまのところ日本語化がされていません(日本語環境で問題なく動作します)。そこで、本プロジェクトではHandBrakeの日本語化と、日本語化されたアプリケーションの配布を行う予定です。なお、本プロジェクトではWindows版/Mac OS X版/Linux版すべての日本語化を行う予定です。

PCをもっていない層に、画像などを通じてアクセスする手段として利用できそうです。

_ pthread:signal, barrier

pthread の signal の扱いと、barrier の扱いについての記事です。(http://codezine.jp/article/detail/1973) barrier とは

バリアは、ある特定の処理を行う時に全スレッドがその位置まで来ていることを保障するための機能です。

とのこと。両方ともにサンプルプログラムがある。

_ QoS:PSPacer バージョン 2.1.1

肝は、(http://www.gridmpi.org/pspacer-2.1/man.tc-psp.ja.html)に書いてある、「ペーシングアルゴリズム」だと思う。

既存のqdiscで実現している QoS との差をもっとwebで見せてくれるといいのだが。論文の方には、詳しく書いてあるかも知れない。

_ 会社の本店移動に関して

法務局だけでなく、税務署にも届けを出す必要あり。税務署も、旧の方で転出し、新の方で編入とのこと


2008-12-17 [長年日記]

_ 当たり前だけど、tcコマンドを使ってQoSをかけてから、スピード計測するときのメモ

ちゃんと考えてたら、大丈夫だけど、コンピュータの廃熱で常夏の頭には必要なメモ

  • tcコマンドには、man tcだけじゃなくて、man 8 tc-tbfなどがあること。
  • iperfでテストするときには、 UDP と TCP と両方でテストする。
  • 設定した最大レートは、tbfの場合、 peakrate の指定も大事だ。
  • peakrateを設定するときには、ちゃんとmanをみて、 mpu や mtu のパラメータを設定しておけ
  • peakrate が rate の数値?と一緒だと "Invaild argument" となる。rate の値よりも大きくすると tc コマンドで設定できる。

_ 究極の業務制限

電力会社のメニューに、使用電力を事前申告することで電気料金を大きく割引するプランがあるらしく、予定している以上の電気を使うことができない会社の話をきいた。約束を上回った電気料金は割高で請求されるとのこと。

夏の電力消費量が大きいときには、30分毎に使用量が報告されるそうです。

残業なし日は、30分前、10分前、5分前にアナウンスがあり、19:30にはブレーカーが落ちる。それ以外の日であっても22:30にはブレーカーが落ちるという強烈な話である。ノートPCもネットワークやサーバが落ちるのでどうしようもない。延長や、連続運転の申請は本部長決裁まで上がるらしく、かなり精査されるとのこと。

コンピュータに依存した仕事中毒人間には効く薬だが、劇薬ですな。


2008-12-18 [長年日記]

_ ps コマンドで ax 以外を使っている奴ちょっとこい

簡単にgoogleってみると、ps コマンドの使い方で、ax とか auxwww とかは見ますが、avとか as の結果の見方について書いてあるページが ps の man page以外で見つからない。(適切なキーワードが思いつかないだけだとおもうのですが)

ps コマンドの結果の STAT 欄にしても、納得のいく説明が書いてあるモノを見つけることができない。Ss を読み解くには、(プロセスの)セッションを知らないとなんのこっちゃって感じ。

セッションリーダについては、Lenny の man 2 intro には書いてないんだけど(see also)、FreeBSDのman 2 intro には記述がある。あと詳解UNIXプログラミングにも記述がある

ps axs の例
  UID   PID          PENDING          BLOCKED          IGNORED           CAUGHT STAT TTY        TIME COMMAND
    0     1 0000000000000000 0000000000000000 fffffffe57f0d8fc 00000000280b2603 Ss   ?          0:10 init [2]  
    0     2 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000 S<   ?          0:00 [kthreadd]
    0     3 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000 S<   ?          0:20 [migration/0]
    0     4 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000 S<   ?          3:55 [ksoftirqd/0]
    0     5 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000 S<   ?          0:00 [watchdog/0]
    0     9 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000 S<   ?          1:20 [events/0]
ps axv の例
  PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND
    1 ?        Ss     0:10    184    28  2071   596  0.0 init [2]  
    2 ?        S<     0:00      0     0     0     0  0.0 [kthreadd]
    3 ?        S<     0:20      0     0     0     0  0.0 [migration/0]
    4 ?        S<     3:55      0     0     0     0  0.0 [ksoftirqd/0]
    5 ?        S<     0:00      0     0     0     0  0.0 [watchdog/0]

2008-12-19 [長年日記]

_ 判ってない人に背景から説明すると膨大なコストがかかること。

何とバカな・・・(http://slashdot.jp/~QwertyZZZ/journal/460892)

うむむ

_ タイムラインによるメール管理方法

時間によりアーカイブ化するのは良い。ただ、検索をどうするかはもうちょい考えないといけないから、今すぐには使わないけど有用な組み合わせツールだと思う。Archivemailを用いたメールボックスの清掃法(http://sourceforge.jp/magazine/08/12/10/0141240)

_ 開放開発型のプロジェクトでやった方がいいことリスト

たしかにやったほうがいいことも書いてある。が、アマチュアじゃなくてもできてないこともあるんじゃないかな。リソースが足りているならやったほうがいいけど。Linuxは意図的に、いろいろと変えてあるので本listを金科玉条のように守るべきかどうかも検討するのがいいんじゃないでしょうか。implicit tasks(http://slashdot.jp/~tabatee/journal/461249)

_ EM のアクティベーションに windows を使わないで良さそうな方法

EMのDW02の初期化に苦労していたのですが、どうやら EMの初期化は、3Gの電話のモデムに使われるTFTなどのコマンドで初期化すれば良さそうとのこと。


2008-12-20 [長年日記]

_ 税理士さんと定例ミーティング

税理士さんと、ミーティング。来年1月10日までに納付する必要がある国税納付書を書いてもらったのを受け取った。

客先が12月24日午前中は、防災訓練とのことなので、外回りするついでに納付してくるか。


2008-12-21 [長年日記]

_ 失せ物見つかる。

OMRON 体重体組成計 カラダスキャン HBF-354IT で、定期的に体をチェックしています。そのチェックするために、万歩計であるオムロン(OMRON) ヘルスカウンタ Walking style HJ-710IT を持ち歩いていたわけですが、少し前になくしていたのですが、ようやくベッド近くで見つけました。たまにしかベッドで寝てないのが敗因ですね。

_ インフルエンザが流行っているそうです。

インフルエンザに罹病(りびょう)したら、客先に出社できませんから、予防措置が大事です。

  • うがい薬を各人に配布します。
  • インフルエンザ予防接種の接種について検討する

という措置を実施します。まずは、薬屋さんでうがい薬を購入し、明日手渡すことにします

_ 神戸へ

神戸の名店である「鶴参」での忘年会に参加してきた。年に一回のお楽しみである。

_ 大阪中央図書館

借りていた、反対尋問の手法に学ぶ 嘘を見破る質問力(荘司 雅彦) を返しに出向く。題名は結構センセーショナルですが、内容は奇をてらわず納得できる話が多かったです。

結構気軽に借りた割には、おもしろい本でした。

人間は嘘をつき続けることが難しいこと、自分の記憶の曖昧さについての実験、記憶違いで自分が正しいと思いこんでいる場合が問題であること。人が発言した内容は必ず裏をとる、などこれまで仕事でやってきて何となく感じていたことを言葉にしてまとめてくれた感じです。

嘘を見破る方法についてもいくつか書いてありますが、理論と実践が必要です。この本を読むだけで能力はつきません。とはいえ、修羅場をくぐるときの道しるべとはなってくれると思います。


2008-12-24 [長年日記]

_ WindowsのSYNパケットは、相手からSYN+ACKが帰ってこなかった場合、3秒,6秒、12秒の間隔で再送する。

観測した結果と、公式発表でのTCP/IP の再送タイムアウトの最大値を変更する方法 (http://support.microsoft.com/kb/170359/ja)内容が誤差の範囲ぐらいで合致しているので、これだろうと思う。


2008-12-26 [長年日記]

_ Apache Portable Runtime(APR)

私が追っかけていないためだが、Apacheって、Portable Runtime Projectってのをやってて(http://apr.apache.org)で展開している。

今日時点の apache の安定版をコンパイルするのには、こいつが必要になっている。APRの中身については、前述のwebや、wikipediaなどでも概観できる。

Debian GNU/Linux Lenny の依存関係でチェックするとapache2をコンパイルするのに、下記のライブラリが必要だそうだ

$ sudo aptitude install libaprutil1-dev libapr1-dev
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます      
パッケージの状態を初期化しています... 完了
タスクの記述を読み込んでいます... 完了        
以下の新規パッケージがインストールされます:
  libapr1-dev libaprutil1-dev libdb4.6-dev{a} libexpat1-dev{a} libpq-dev{a} 
更新: 0 個、新規インストール: 5 個、削除: 0 個、保留: 0 個。
2206kB のアーカイブを取得する必要があります。展開後に 9495kB のディスク領域が新たに消費されます。
先に進みますか? [Y/n/?] 
  • libdb4.6 は、BerkleyDBのライブラリ
  • libexpat1は、XMLのパーサ。
  • libpq-devは、postgresqlのヘッダーなどの開発に必要なファイル

ということなんで、最小の構成でmakeするだけなら全部はいらない風味だ。で、debian/rulesを覗いてみる。

AP2_COMMON_CONFARGS = --enable-layout=Debian --enable-so \
                      --with-program-name=apache2  \
                      --with-ldap=yes --with-ldap-include=/usr/include \
                      --with-ldap-lib=/usr/lib \
                      --with-suexec-caller=www-data \
                      --with-suexec-bin=/usr/lib/apache2/suexec \
                      --with-suexec-docroot=/var/www \
                      --with-suexec-userdir=public_html \
                      --with-suexec-logfile=/var/log/apache2/suexec.log \
                      --with-suexec-uidmin=100 \
                      --enable-suexec=shared \
                      --enable-log-config=static --enable-logio=static \
                      --with-apr=/usr/bin/apr-1-config \
                      --with-apr-util=/usr/bin/apu-1-config \
                      --with-pcre=yes

が configure へオプションとして渡されているのを確認する。aprとapuのことも調べておく。

$ ls -la /usr/bin/apr-1-config  /usr/bin/apr-config 
-rwxr-xr-x 1 root root 6934 2008-10-08 07:15 /usr/bin/apr-1-config
lrwxrwxrwx 1 root root   12 2008-12-26 15:11 /usr/bin/apr-config -> apr-1-config
で、そのaprの中身は?
$ file /usr/bin/apr-1-config 
/usr/bin/apr-1-config: POSIX shell script text executable
ってことで、後学のために中身を眺めておく。次は、apuの方
yelona:~# ls -la /usr/bin/apu-*
-rwxr-xr-x 1 root root 5953 2008-08-21 05:39 /usr/bin/apu-1-config
lrwxrwxrwx 1 root root   12 2008-12-26 15:12 /usr/bin/apu-config -> apu-1-config
yelona:~# file /usr/bin/apu-1-config 
/usr/bin/apu-1-config: POSIX shell script text executable
これも後学のために中身を眺めておく。

_ NIC2枚差しで、両方のNICからDHCPの設定をもらって困ってしまったら。

netstat -rn を実行して、現状を確認して、おもむろに、route default gw xxx.xxx.xxx.xxx と打ち込んで、netstat -rn を実行する。まあ、これだけじゃダメです。DHCPでリゾルバが上書きされて切ない状態になっていることが多い。よって /etc/resolv.confを手で修正するか、GWにしたい側のdhcp clientを起動してresolv.confを上書きしてもらえ。最近のlinuxならケーブルを抜き差しするだけでいいんじゃないかな。

って、ケーブルを抜きさした方が、viなどのエディターで/etc/resolv.confを書き換える必要がないから、ついつい使ってしまう


2008-12-27 [長年日記]

_ お客様の寮に泊めてもらう。

ビジネスホテル風な感じで、安眠できました。

_ [Debian][QEMU] qemu-system-arm を用いて、86アーキテクチャー上で ARM版の Debian GNU/Linux を動かす。

判っている人向け。(http://people.debian.org/~aurel32/qemu/armel/)にqemu-system-armで動かす、lennyのイメージがある。3つのファイルをダウンロードしてqemu-system-arm -M versatilepb -kernel vmlinuz-2.6.24-1-versatile -initrd initrd.img-2.6.24-1-versatile -hda debian_lenny_armel_small.qcow -append "root=/dev/sda1" を実行すると、私のThink Pad X200で稼働しているi386用の Debian GNU/Linux Lenny では動きました。


2008-12-29 [長年日記]

_ 一周回って Apache は、便利なソフトウェアだと感じた。

ソースコードを読んでいくと、rootで稼働させるような危険なことでも、「判っているから、今は試しにやらせてくれ」という要望を叶える方法がちゃんと用意してあります。 lenny の apache2 なら、apache2-2.2.9/os/unix/ 以下を読め。

postfix と同様に、Apache は、現在の設定値や状態の一覧を表示する方法を提供している。この機能は、システムの環境にインストールした後、どのような動作が正常であるかというのを確認する時には必要です。この確認作業は、利用者として正しくインストールしたことを検証する作業をイメージできればわかるはずで、実装してあるのが素晴らしい。設定の読み込みが正しいかどうかを、下手するとソースコード追っかけることになる、そういうソフトウェアも存在する。

システムの環境に依っては、時間が起動時から一定方向に進むとは限らない。そんなとき 起動時間が正の方向にのみ一直線だと仮定しているソフトウェア、具体的には dovecot などのソフトウェアは(事情があるのは理解するが)手を入れない限り使えない。でも、Apache は、元気に動いている。

Apacheは、昔から便利だとは思っていました。でも、いま、私が持っているApacheのイメージは、宮沢賢治の「雨ニモマケズ」である。いろいろな悪条件でも、httpサーバとして黙々とサービスを提供する。