[-]=======================================================================[-] Wizard Bible vol.49 (2009,12,13) [-]=======================================================================[-] x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ---- 第0章:目次 --- x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ○第1章: もう憂鬱じゃないVMware Server管理者 金床 著 ○第2章: Androidでアプリを作る 嶋崎 聡 著 ○第3章: 伝送量とdBの関係 IPUSIRON 著 ○第4章: オウム信者の実像と地下鉄サリン事件の目的 ローリングクレイドル 著 ○第5章: お知らせ ○第6章: 著者プロフィール x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第1章: もう憂鬱じゃないVMware Server管理者 --- 著者:金床 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x00.) はじめに  Wizard Bible vol.43にて、VMware ServerをLinux上で走らせる際の苦労につい ての記事を書いた。その後さらに試行錯誤を繰り返していくうちにかなり納得で きるレベルまでたどり着くことができたので、今回はWB43の続編といった位置づ けでの記事としたい。  「どんなに暗い夜でも、必ず朝が来る」  パフォーマンスが上がらず四苦八苦し続けたVMware Serverの管理者たちに、こ の言葉を贈りたい。  ちなみに筆者が使っているバージョンはLinux版のVMware Server 1.0系列で、 ホストOSはX86_64のCentOS5.2である。他のバージョンを使っている人には参考に ならない点が多々あるかと思うがご了承願いたい。 ■0x01.) 前回の結論と残った課題  WB43での筆者の結論は以下のようになっていた。  ・すべてのゲストOSがフルにメモリを消費しても大丈夫な量のメモリをホストOSに載せておく  ・ホストのメモリが実際にいくつ消費されているのかはぶっちゃけわからないので、 気にしないwww  ・どうしても気になる場合は/proc/meminfoを見る  ・mainMem.useNamedFile = "FALSE"は使わない  ・そのほかは普通にやる(Fit all virtual…やDisable memory page trimming など)  これらの方針通りにしばらくサーバー運用を続けたのだが、どうにも状態がよ ろしくない。数週間から1ヶ月以上立ち上げっぱなしにしているゲストOSのパフォ ーマンスが思わしくなく、徐々に調子が悪くなってくるのだ。特に具合が悪くな る(あらゆる場面で遅くなる)のが、ホストOS上で巨大なファイルのコピーなど の作業を行った後だ。つまり、ホストOSのディスクキャッシュが大きな影響を与 えているものと予想される。  ゲストOS(筆者の場合は主にLinuxだが、Windowsも同様に調子が悪くなる)を 再起動すれば調子は良くなるのだが、それではせっかくのLinuxサーバーがまるで Windows NT4.0のようで、精神安定上よろしくない。  とはいえ再起動すれば調子よくなってしまうため、いったいどのような現象が 起こっているのかつかめず月日は流れていった。 ■0x02.) .vmemファイルの読み込みが遅い  あるときゲストOSのリジュームがいつまでたっても終わらないので、.vmemファ イルの読み込みに問題があるのでは?と見当を付けた。そこで1ヶ月以上連続稼働 しているゲストOSの.vmemファイルをddで読み込み、その読み込みの速度を測定し てみる。するとなぜか2MB/sしか速度がでない。ハードディスクには特に問題はな く、シーケンシャルの読み込みでは80MB/sくらいは出るのに、である。  なぜこんなに読み込みが遅いのだろうか?と考えた結果、このファイルがひど く断片化しているのではないかという仮説にたどり着いた。というのは、起動直 後のゲストOSをサスペンド・リジュームさせた場合、比較的スムーズにリジュー ムが完了するのに対し、長い間稼働した後のゲストOSをサスペンド・リジューム させるとひどいことになるからだ。  また、ホストOSのディスクキャッシュの状態がリジュームのパフォーマンスに 大きな影響を与えているように感じていたが、この点について、この断片化した .vmemファイルがディスクキャッシュにのっていない場合にひどくパフォーマン スが悪くなるのではないかと予想した。 ■0x03.) 1つめの解(/dev/shmに置く)に到達  そこで、ハードディスク上での断片化が問題なのだろうという予測のもとに、 .vmemファイルがメモリ上に作成されるようにしてみた。ホストOSにおいて/tmpを /dev/shmへのリンクに変更した上で、vmxファイルでmainMem.useNamedFile = "F ALSE"を記述する。すると.vmemファイルはメモリ上に隠しファイルとして作成さ れる。メモリ上でもファイルとして断片化が発生するのかどうかはわからないが、 HDDよりもランダムアクセスが圧倒的に速いため、これで状況が改善するのでは? と期待した。  結果は期待通りで、長い間稼働させてもパフォーマンスは安定し、サスペンド とリジュームもうまく動いてくれるようになった。この方法の欠点は常にホスト OSのメモリを消費するということだが、メモリをたっぷり積んでいる場合は問題 ない。手軽に実行できるのでおすすめの方法である。  この方法は/etc/vmware/configにtmpDirectory = "/dev/shm"と書き、さらにv mxファイルにmainMem.useNamedFile = "FALSE"と書くことでも実現可能である。  後に検索によってたどり着いた多くのVMware関連のフォーラムなどをのぞいた 感じでは、この手法は一定数のユーザから支持されているようだった。 ■0x04.) 断片化の度合を調べる  今回の調査では某社の気鋭のエンジニアであるINB氏に多大なる協力を頂いた。 筆者が「ファイルがどのくらい断片化しているかを調べる方法を探している」と 伝えたところ、hdparmの--fibmapオプションで可能であることを教えてくれた。 また、前項のtmpDirectoryという項目の存在を教えてくれたのも彼である。この 場を借りてお礼を申し上げる。  hdparmの--fibmapオプションは比較的新しいバージョンのhdparmに実装されて いる。筆者の環境であるCentOS5.2に入っていたhdparmではサポートされていなか ったので、最新版のソースをダウンロードしてコンパイルした(makeするだけで 無事にコンパイルすることができた)。  .vmemファイルに対して以下のように--fibmapオプションを使用する。 ----- hdparm --fibmap 'Windows XP Professional.vmem' ------  すると以下のように結果が出力される。場合によっては非常に大量の出力が発 生するので注意が必要である。 ----- Windows XP Professional.vmem: underlying filesystem begins at LBA 63; assuming 512 byte sectors. byte_offset begin_LBA end_LBA sectors 0 679035215 679035310 96 49152 679035319 679043510 8192 4243456 679043527 679051326 7800 8237056 679051391 679051782 392 8437760 679051791 679059982 8192 12632064 679059991 679067710 7720 (略) -----  数ヶ月稼働させていたゲストOSの.vmemファイルを調べてみたところ永遠に出力 が止まらないw感じだったので、wc -lにパイプしてhdparmの出力の行数だけを調 べてみることにした。このゲストに割り当てていたメモリは約650MBだったので.v memファイルのサイズもそのくらいだったのだが、なんとhdparm --fibmapの出力 は140万行以上に及んだ。ddでシーケンシャルに同じくらいのサイズのファイルを 作成して調べてみたところわずか359行だった。…断片化ってレベルじゃねーぞ! (`Д´)ノゴラァ  とにかくこれで「.vmemファイルがひどく断片化することがパフォーマンス劣化 の原因である」ということはほぼ確定した。そこで「vmware vmem fragmentation」 などでググってみると、案の定たくさんのウェブサイトがヒットした。このことに もっと早く気づいていれば…。  ちなみにこの検索の段階で「filefrag」というそのまんま断片化の具合を調査 するコマンドもあることを知った。手元のUbuntuではデフォルトで入っているよ うである。 ■0x05.) 断片化の理由  なぜ.vmemファイルはここまでひどく断片化するのだろうか。WB43でも書いたよ うに、.vmemファイルはスパースファイルとして生成される。そしてゲストOSを長 い時間稼働させていくにつれて、徐々に実際のサイズが大きくなっていく。  どうやらvmware-vmxプロセスは.vmemファイルを1MBずつの領域にわけてmmapを 行っているらしい。これは、/proc/PID/smapsをlessなどで見ることで確認するこ とができる(PIDはvmware-vmxプロセスのプロセスID)。該当する.vmemファイル について、Size項目が1024KBの領域が大量に見つかる。  おそらくvmware-vmxプロセスは、「しばらくアクセスされていない」等の何ら かの基準に従って、これらの1MBの領域を個別にファイルに同期させているのだろ う。全体で数Gにもなるようなスパースファイルである.vmemファイルに、ばらば らの順番で1MBずつ書き込みを行っているために断片化が発生しているのだと予想 される。 ■0x05.) 2つめの解(.vmemファイルをコピーして入れ替える)に到達  筆者と同じく.vmem問題にはまっている人たちのエントリが大量に見つかったの で適当に目を通してみると、「一度サスペンドさせ、.vmemファイルをコピーして 入れ替え、リジュームする」という作戦が見つかった。断片化が起こる前に、フ ァイル自体をきっちりHDD上に作成してしまおうという作戦である。  見た目のサイズが大きいにもかかわらず、実際には小さなスパースファイルが あるとする。このファイルをddで読み込むことで別のファイルとしてコピーする と、スパースファイルではない通常の(巨大な)ファイルが生成される。コピー の際に、スパースファイル中のまだ書き込みが行われていなかった部分は、コピ ー先のファイルではすべて0x00となる。  こんなことをして何がうれしいのかというと、コピー時に一気に大きなファイ ルを作成するので、ファイルがHDD上にほぼシーケンシャルに作成され、断片化が 非常に少ない形で.vmemファイルを作成することができるのだ。また、このファイ ルはすでに全体をディスク上に割り当てられているため、これ以上肥大化するこ とがない。つまり断片化も進まない。この後いくら長くゲストOSを稼働させ続け ようとも、まったく断片化は進行せず、安定したパフォーマンスを発揮するので ある。  筆者の手元ではcpコマンドでのコピーではスパースファイルのままコピーされ てしまうようだった。そのためddを使ったが、インターネット上で見た感じでは このあたりは環境依存があるようだ(cpコマンドでうまくいっている人もいるよ うである)。  この方法を簡単にまとめると次のようになる ・この方法は、mainMem.useNamedFile = "FALSE"を指定しない場合に使用できる 方法である。つまり、.vmemファイルが/tmp等ではなく、.vmxファイルと同じディ レクトリに作成される場合に使う方法となる ・ゲストOSを起動したら、すぐにサスペンドさせる。 ・この段階で、実際のサイズは非常に小さいが、見た目のサイズは割り当てたメ モリの量に等しい.vmemファイルが作成される(仮にサスペンドせずこのまま使用 を続けると、ひどく断片化しながら肥大することになる)。 ・ddなどを使ってこの.vmemファイルをコピーする。ここでコピー先のファイルは 実際に巨大なサイズのものになる。コピーには数十秒かかる場合もある。 ・コピーが終了したら、コピー元のスパースファイルを削除する ・コピー先のファイルをリネームし、元の.vmemファイルと同じ名前にする ・ゲストOSをリジュームする ・安定稼働(*´Д`)長期実現ポワワ  この方法を使えば長期稼働させた後にも安心してサスペンド・リジュームさせ ることができる。欠点は毎回起動後にシェルから操作が必要であることと、コピ ーの時間(数十秒)が掛かることである。 ■0x06.) 3つめの解(LD_PRELOADで.vmemファイル生成)  前項で説明した方法でほぼ問題ないのだが、毎回シェルからファイルコピーな どの操作するのはメンドクチイと思ったので、もう少し踏み込んでみた。WBらしく、リ バースエンジニアリングの領域に突入である。ゲストOSの実体であるvmware-vmxプロセス の動作を一部動的にコントロールする。そして、.vmemファイルをスパースファイ ルではなく、通常のファイルとして作成させてしまうのだ。  幸いなことにWB43にてvmware-vmxプロセスをstraceで追った際に、スパースフ ァイルが作成される箇所は特定済みである。以下はstraceのログからの抜粋だ。 ----- pwrite64(106, "\0", 1, 3774873599) = 1 -----  このように、起動からまもなく、かなり癖のある引数でpwrite64が実行される。 4つめの引数(オフセット)が極端に大きいのに対し、たった1バイトしか書き込 みを行わないことで、この呼び出しがスパースファイルの生成であることが容易 に確認できる。この時点でファイルをシーケンシャルにきっちり作成してやれば、 前項で説明した「2つめの解」と同じ動きを実現できるはずだ。  Linuxではライブラリの呼び出しをLD_PRELOADを使いフックすることで、任意の 関数の内容を書き換え、アプリケーションの動作を変更することができる。ここ ではpwrite64の呼び出しをフックし、スパースファイルの作成を阻止しつつ、実 際に大きなファイルを生成するようにすればいい。ただしpwrite64はvmware-vmx の動作中で何度も使用されるため、スパースファイルの作成を行っている場合の み、挙動を書き換えるようにする。上に書いたように4番目の引数であるオフセッ トが極端に大きく、かつ1バイトしか書き込まない場合に挙動を変更する。このと きpwrite64ではなく普通にwriteを呼び出し、大きな.vmemファイルをきっちり作 成する。そうでない場合はそのまま本物のpwrite64にフォワードし、戻り値もそ のまま返すようにする。  ソースコードは以下のようになる。 ----- #include #include #include #if defined(RTLD_NEXT) #define REAL_LIBC RTLD_NEXT #else #define REAL_LIBC ((void *) -1L) #endif using namespace std; static int flag1 = 0; // pointer to the original function static int (*original_pwrite64) (int file_descriptor, const void *buf, size_t nbyte, off64_t offset) = NULL; // for logging #define LOG(...) do { \ syslog(LOG_INFO, __VA_ARGS__); \ } while(0) #define SADDR_B(target,shift) (((target) >> (shift)) & 0x000000ff) static void __attribute__ ((constructor)) _constructor() { // for syslog openlog(NULL, LOG_CONS | LOG_NDELAY | LOG_PID, LOG_USER); //get address of the original function original_pwrite64 = (int(*)(int,const void*,size_t, off64_t)) dlsym(REAL_LIBC, "pwrite64"); } static void __attribute__ ((destructor)) _destructor() { closelog(); } ssize_t pwrite64(int fd, const void *buf, size_t nbyte, off64_t offset) { int rv; if( flag1 == 0 && offset > ( 1024 * 1024 * 200 ) //works only if offset is larger than 200MB && nbyte == 1 ) { flag1 = 1; LOG( "pwrite64 is hooked. ARGS: nbyte=%d, offset=%d\n", nbyte, (int)offset ); LOG( "creating .vmem file...\n" ); int bufsize = 1024 * 1024; char buffer[ bufsize ]; off64_t remain = offset + 1; while( remain > 0 ) { if( remain > bufsize ) { rv = write( fd, buffer, bufsize ); } else { rv = write( fd, buffer, remain ); } if( rv == -1 ) { LOG( "write failed.\n" ); return -1; } remain -= rv; } return 1; } else { rv = (*original_pwrite64)(fd, buf, nbyte, offset ); return rv; } } -----  ソースのダウンロードはhttp://www.jumperz.net/tools/nosparse.cppから、バ イナリのダウンロードはhttp://www.jumperz.net/tools/nosparse.soから行うこ とができる。  このコードはチームチドリのスーパーハカーyoggy氏が作成したhook_tcp.cppをベースに している。オリジナルのファイルはチームチドリのサイトからダウンロードできる (http://www.t-dori.net/?hook_tcp.so)。スペシャルサンクスコ!!>Yoggyさん&チドリ  このコードをnosparse.cppという名前で保存し、次のようにコンパイルして共 有ライブラリ(.soファイル)を作成する。 ----- g++ -Wall -fPIC -shared -o nosparse.so nosparse.cpp -ldl -----  ここで注意したいのは、このコンパイルは32bitのLinuxマシンで行う必要があ るということだ(g++の-m32オプションを使用してもよいのかもしれないが、筆者 の環境ではさまざまなヘッダファイル等が足りずうまくいかなかった)。筆者は 最初X86_64のLinux上でコンパイルしたのだが、vmware-vmxのバイナリが32bit用 のものだったためにうまくPRELOADすることができずハマった(VMware Server 1.0 系列は32bitバイナリなのである)。  32bitのマシンでコンパイルしたnosparse.soファイルをX86_64マシンに持って くることで、問題なく動かすことができる。もちろんホストOSが32bitの場合はそ のままで問題なくうまく動くと思われる。  コンパイルがうまくできたら、以下のようにしてvmware-vmxプロセスをシェル から起動する。ここではnosparse.soは/root/vmware/に、vmware-vmxは/usr/lib /vmware/bin/に、そして起動したいゲストOSのvmxファイルは/vmware/Linux/以下 にあるものと仮定する。 ----- LD_PRELOAD=/root/vmware/nosparse.so /usr/lib/vmware/bin/vmware-vmx -x -C /vmware/Linux/Linux.vmx -@ \"\" -----  通常はゲストOSの起動はVMware Server Consoleか行う場合がほとんどだと思う が、今回のテクニックを用いる場合にはこのようにシェルからゲストOS(vmware -vmxプロセス)を起動する。このとき、CD-ROMが存在しない等のようなエラーな どがある場合にはVMware Server Consoleに対してダイアログがポップアップする ケースがあるため、VMware Server Consoleからも接続した状態で別ウィンドウの シェルから起動する方法がおすすめである。  うまく起動した場合(上のコマンドを実行し、何もエラー等が出力されない場 合)、まずはじめに.vmemファイルがディスク上にほぼシーケンシャルな状態で作 成される。例えばゲストOSのメモリを2GB程度割り当てた場合には数十秒の時間を 要するので、じっと待つ。ここで時間がかかるのが欠点だが、起動後のパフォー マンスはすこぶる安定するのでじっと待つ価値はある。  .vmemファイルを生成する際に、syslogに(通常は/var/log/messagesに)以下 のようなログが出力される。 ----- Nov 17 18:27:06 raptor vmware-vmx[21321]: pwrite64 is hooked. ARGS: nbyte=1, offset=2017460223 Nov 17 18:27:06 raptor vmware-vmx[21321]: creating .vmem file... -----  .vmemファイルが無事生成されると、続いて通常と同じようにVMware Server C onsoleにBIOS画面が表示され、続いてゲストOSの起動が始まる。ここで試しにhd parm --fibmapしてみると、出力はわずか1000〜1500行程度に抑えられており、断 片化の防止に成功したことがわかる。  この後は普通にゲストOSを使用できる。サスペンド・リジュームを行う場合は 再度PRELOADする必要はないので(.vmemファイルはすでに完成しているので)、 コンソールから普通に操作すればOKである。 ■0x07.) まとめ  今回は、LinuxをホストOSとして使うVMware Server 1.0.x系列について、サス ペンド&リジュームや長期使用時のパフォーマンス劣化の原因が.vmemファイルの 断片化であることを特定し、またその対策として3つの案を提示した。.  vmemファイルの断片化を防止すれば、VMware Serverはすこぶる良好な使用感と なり、非常に満足度の高い仮想化技術を提供してくれる。筆者はここ数年長い間 苦労してパフォーマンス劣化と戦ってきたが、ついに問題点を解決することがで き、非常に晴れ晴れとした気分である。VMwareにはESXiなどもあるのでServerの 1系列にこだわる必要はないと思うかもしれないが、筆者はホストOSとしてのLin uxの機能(iSCSI、ソフトウェアRAID、リモートから使用できる充実した管理機能 など)を必要としているのでServerにこだわっていたりする。今後もしばらくの 間は使い続けることになるだろう。 ■0x08.) おまけでQ&A なんでこのファッキンVMwareはこんなに具合悪いのマダファッカ?  .vmemファイルが断片化しているから .vmemファイルの実際のサイズの確認方法は?  ls -lsuhあるいはduで確認が可能 .vmemファイルはいつ作成されるの?  ゲストOS起動直後 .vmemファイルはどこに作成されるの?  通常.vmxファイルと同じディレクトリだが、vmxファイルの設定でuseNamedFile をfalseにしておくと/tmp以下の隠しファイルになる。この/tmpの位置は変更可能(本 文参照) .vmemファイルはいつ書き込まれるの?  vmware-vmxプロセスがマターリとメモリと同期させる。数日がかりで観察する と徐々に大きくなることが確認できる .vmemファイルはいつ読み込まれる(役に立つ)の?  レジュームするとき。あるいはmemory page trimmingが有効な場合には、vmwa re-vmxプロセスが判断して随時読み込む .vmemファイルの断片化の程度はどうやって確認するの?  hdparmの最近のバージョンで hdparm --fibmap *.vmem | wc -lすればどの程度 かをつかめる。あるいはfilefragコマンドを使う .vmemファイルの断片化を防ぐ方法は?  起動直後にサスペンドさせ、ddでファイルをコピーして入れ替え、リジューム するか、LD_PRELOADしてスパースファイル生成を阻止する(詳細は本文参照) .vmemファイルを使用しない方法はないの?  ない .vmemファイルがなくなったみたいだけど?  /tmp以下に隠しファイルとして存在している。lsofでvmware-vmxプロセスを見 ると見つけることができる サスペンドは使わない方がいい?  断片化しないように対策してあれば普通に使える memory page trimmingは使わない方がいい?  ホストOSのメモリが足りなくなる可能性があるなら(かつ断片化を防止してい るなら)便利に使える。メモリに余裕があるなら使わない方がいい useNamedFile="False"の意味は?  .vmemファイルを/tmp以下の隠しファイルにするという意味。理解していないと 地雷 ゲストOSが消費しているメモリ量の確認は?  vmware-vmxプロセスについて、/proc/PID/statusのRSSを見る。あるいはtopで SHR項目を確認 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第2章: Androidでアプリを作る --- 著者:嶋崎 聡 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) Androidのネタ  Androidという名前、最近よく聞きますよね。何かとiPhoneと比較されているア レです。携帯電話用のプラットフォームと思われがちですが、実際はそうでもあ りません。  Androidを採用した携帯端末を出しているのは、まだNTTDoCoMo一社のみですが、 携帯電話にとどまらず、組み込み用途で使われる機会が増えているそうで話題に あがることも増えてきました。  先日久しぶりに会った電話が大好きな人が、後日電話をかけてきて「これから はAndroidがあついですね!」と開口一番言い出してびっくりしました。また、こ の間見に行ったET2009では、富士通が液晶テレビに組み込んでデモやっていまし た。それ以外のメーカーさんでもAndroidの文字を掲げているところが多かったで す。  そこでAndroidがこの先、結構な話のネタになりそうなこともありますので、WB にはそぐわない内容かもしれませんが、GoogleAppEngineと組み合わせてなんかや るかーというと考えてみました。  そこで、まずは開発環境のインストールとちょっとしたものを動かしてみると ころまでを書いていきます。 ■0x02.) 開発環境のインストール  Androidの開発には、端末代や通信費、Androidマーケットへ出店料以外のお金 はかかりません。開発環境もSDKも無料です。が、実際に始めようと思ったときに 何をどうすればいいのかわからん状態でした。  最初に必要なのは、Java(JRE)、Eclipse、AndroidSDKをそれぞれダウンロード してインストールすることです。 Java(Java2SE/JRE):http://java.sun.com/javase/ja/6/download.html Eclipse(Ganymede):http://www.eclipse.org/downloads/packages/release/ganymede/sr2 AndroidSDK:http://developer.android.com/sdk/index.html  どれも相手サーバーの都合でダウンロードに時間がかかりますが、そのうちに 落ちてきますので気長に待ちましょう。ダウンロードが終わったら、Javaはイン ストーラーでインストールします。EclipseやAndroidSDKは解凍して適当なドライ ブにコピーしましょう。  コピーが終わったら、Eclipseを起動してAndroidSDKを利用するための設定をし ます。Eclipseは初回の起動時にworkspaceを保存する場所を聞いてきます。これ はどこでもかまわないと思いますが、HDDに余裕があればOSとは違う場所にしてお くとよいと思います。  Help→SoftwareUpdate→Add Siteで「http://dl-ssl.google.com/android/ecl ipse/」を登録してADTをインストールします。次にWindowからPreferencesのAnd roidの項目にあるSDK LocationにSDKを解凍した場所を設定します。  ADTがインストールされると携帯電話の形をしたボタン(Opens the Android SD K and AVD Manager、以下、AVDマネージャ)が出てきますので、これを押してくだ さい。  Android SDK and AVD Managerが開きますので、左側のメニューからAvailable Packagesを選択しましょう。右側にはチェックボックスとともに「https://dl-g oogle.com/android/repository/repository.xml」と表示されます。ここをチェッ クしてRefreshを押してください。  現在利用できるSDKがリストに表示されますが全部ダウンロードしていると大変 なので、まずはGoogle APIsのAndroid API 4とSDKの1.6を入れましょう。この2つ にチェックを入れて、Install Selectedを押します(残りのSDKはあとで入れてお いてください)。  Installing Archivesというウィンドウにインストール状況が表示されますので、 これが終わるまでほかのことで時間をつぶしているといいでしょう。 ■0x03.) お試しプロジェクトのインポート  まずは、「Hello!World!」と言いたいところですが、その辺は各自やってもら うことにして、ちょこちょこと作ったアプリを見てもらいます。  Threemin.zip(http://wizardbible.org/48/Threemin.zip)を適当なところに 解凍して、EclipseのProjectExplorerで右クリック、Importを選びます。Import メニューからExisting Projects into Workspaceを選びます。  Select root directoryで解凍した先のフォルダを選択するとProjectsの中に「 Threemin」が出てきますので、これを選んでFinishを押すとProjectExplorerに読 み込まれます。このままだとエラーが出ますのでThreeminのところで右クリック →Android Tools→Fix Project Propertiesを選んでください。  次にAVDマネージャからAVD(Android仮想デバイス)を作ります。  Newボタンを押すとCreate New AVDウィンドウが開きます。  Nameは仮想デバイスの名前、わかりやすいものをつけてください。  TargetはSDK1.6 - API Level 4, revision 2を選びましょう。  SD Cardは、最初はSize 128MB で十分です。  その他の項目は現状は特に設定する必要はありませんので、Create AVDボタン を押してください。ここで、自分のユーザー名が全角の方は注意が必要です。AV Dを起動する際にファイル名/パス名に全角が入っていると起動できません。その 場合は半角の名前のユーザーを作って作業してください。  この原稿の前後でSDKがバージョンアップされました。以前は面倒な入れ替えの 作業が必要でしたが、今回はAVDマネージャからAvailable Packagesを選んでgoo gle側のリポジトリから更新状況が調べられます。新しいものがあった場合は、イ ンストールの時と同じようにチェックボックスを選択してInstall Selectedを選 んでください。 ■0x04.) プロジェクトを実行  AVDができたら、再度ProjectExplorerに戻ってThreeminの上で右クリック→Run as→Android Applicationを選んで実行してみましょう。初回起動時はAVDの初期 化などもありますので、若干時間がかかります。  起動すると左側には白いバーや時計、Startと書かれた大きなボタン、右側には キーボードや各種電話操作のボタンが出ると思います。  ここでStartと書かれたボタンをマウスでクリックすればStopに変わりカウント ダウンを始めます。このカウントが0になったら、TimeUpに変わって音がなります (0:00→一瞬間があってTimeUpになるのは仕様です)。  途中で止めたときはResetに変わり、再度押したら、また最初からカウントダウ ンです(仕様で…す…)。 ■0x05.) Androidの開発環境は整いました  このようにAndroidの開発を行う場合には、AVDを使うことで、まずは実機がな くてもどうにかなります。  当然のことながら、最終的に実機が必要になる場面はありますが、誰か電話が 好きな知人が1台か2台持ってると思いますので、ぜひ協力してもらいましょう。 きっとそれで済む話です。  ですから、まずはJava/Eclipse/AndroidSDKをインストールして試してみてくだ さい。  Threeminのプログラムについて細かい内容は解説しません。Android用なのでS haredPreferenceやSoundPool、Thread、Handlerのような機能を使っていますので、 その辺を他へ転用できる部分もあると思います。(Blogのアクセス解析見てるとS haredPreferenceを検索してくる方が多いので) ■0x06.) GAEの環境を整える  次はGAEの環境を整えます。GAEは、Pythonをメインで使う環境とJavaをメイン で使う環境があります。BlogなどではPython使ってやっていたのですが、今回は Eclipseもありますので思い切ってGAE/Javaを使います。  先ほど、ADTをインストールした要領でHelp→SoftwareUpdate→Add Siteで、 「http://dl.google.com/eclipse/plugin/3.4」を登録してダウンロード/インス トールします(Galileoの場合は3.5/Europaの場合は3.3に変更してください)。  Eclipseを再起動するか聞かれますので、再起動しておきましょう。こうしてイ ンストールするだけで、GAEのSDKまでインストールされます。 ■0x07.) サンプルプログラム  ProjectExplorerにプロジェクトを追加してみます。右クリック→New→Project と選ぶとNewProjectウィザードが出ますのでGoogle→Web Application Projectを 選びます。  Project nameはプロジェクトの名前ですが、まずはなんでもいいです。  Package名は、規則はいろいろありますが例のように com.example.myprojectと 入力してください。  これでFinishを押すとなにやら新しい項目が出てきます。そこで右クリック→ Run as→Web Applicationと選んでみてください。  1つはホスト、もう1つはクライアントとウィンドウが2つ開き、サンプルの動作 を確認できます。  実際にGAEのサーバーにアップロード(Deploy)して動作させたりするまでにはい くつか作業はありますが、ローカルで動作させるだけならば作業はここまでです。  Deployする場合もhttps://appengine.google.com/の設定画面からApplication を登録、そこで付けたApplicationID(Application Identifier)をプロジェクトに 設定したら、Deploy to App Engineすれば、公開できるようになります。  Androidの設定に比べると拍子抜けするような簡単さですが、これで両方の開発 環境が整いました。 ■0x08.) 最後に  書き込みがあるとその内容を教えてくれる掲示板スクリプトをまずは作りたい と思います。メールを使うのでもいいですし、Androidのアプリとして作るのもい いでしょう。  位置情報を埋め込むなどの機能拡張については、いったん掲示板ができた後に 仕様を固めます。 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第3章: 伝送量とdBの関係 --- 著者:IPUSIRON x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) はじめに  最近読んだ資格対策本によれば、電気エネルギーである信号を通信ケーブルな どを介して遠距離の地点へ伝送したときに必要な伝送能力の求め方が載っていた。 その求め方というのは次の通りである。 (伝送能力)=(受端電力)/(送端電力)  過去問を確認すると、多くの問題はこの伝送能力の値を問うのでではなく、伝 送量から計算できる伝送量という値を問うものが大半であった。  伝送量とは伝送能力を常用対数(10を底とする対数)であらわして10倍したも のが伝送量と呼ぶ、dB(デシベル)で表現するらしい。 (伝送量)=10log_10(伝送能力)  以降、底の値が省略されていれば、10とする。  まず思ったのは、なぜ伝送能力より伝送量という値にわざわざ注目するのかと いうことである。明らかに伝送量のほうが対数の計算などが必要で面倒に感じら れる。  また、dBという言葉はよく日常でも登場するものなので一般には常識なのかも しれないが、自分自身はこれまでdBという言葉をきちんと理解して使っていなか った。資格の勉強のためというのが一番のモチベーションだが、わからないまま 使い続けるという行為を改めるべく、最近はdBやそれに関する事柄を調べる日々 が続いた。他の人にはすでに既知である事柄かもしれないが、理解を自己確認す るためにわざわざWBの記事にした次第である。  今回の記事はまずdBの定義を述べる。その後、dBの世界に慣れるためのdBの計 算例をたくさん示した。そして、元々の目的であった伝送量でdBが使われる理由 を示す。最後に、過去のWBで紹介した音声(WB17)とdBが強い関係にあることを 紹介する。 ■0x02.) dBの定義  dBは一般に「デシベル」と呼ぶが、「デービー」「ディービー」と呼ぶ業界・ 環境もある。この「デシベル」という名はグラハム・ベルの「ベル」に、デシリ ットルの「デシ」(10分の1という意味)を付けた言葉である。  dBとは10の累乗で表したときの指数部(10の肩の部分)を20倍したものである。  例えば、1,00倍=10^2倍である。この指数部は2であり、これを20倍して40dBと なる。よって、100倍は20dBということである。  また、1/1,000倍=10^(-3)倍は、-3×20=-60dBということになる。  10の倍数や、10の倍数分の1のときは、10の肩の部分が整数になるから、dBは20 の倍数になる。 ○1倍  1=10^xを満たすxは0なので、この0を20倍したものは0である。よって、1[倍]= 0[dB]となる。 ○2倍  それでは2倍をdBで表すとどうなるだろうか。2=10^xを満たすxを20倍したもの が、2倍のdB表現になる。10^(log2)=2が成り立つので、このxはlog(2)となる。よ って、2[倍]=log2×20=0.301×20=0.602[dB]となる(log2は関数電卓またはWin dows付属の電卓で計算可能)。 ○A倍  まず10^x=Aを満たすxを調べる必要がある。つまり、x=log(A)を計算する。次に その値を20倍すれば、dBになる。よって、どんな数であっても、logを取ってから 20倍すればdB表記で計算できることがわかる。  次に1〜10倍とdB値の関係を示す。これさえわかれば、様々な計算が可能になる。 --------------------- |真数| 対数 | dB値| |----+--------+-----| | 1 | 0.0000 | 0.0 | | 2 | 0.3010 | 6.0 | | 3 | 0.4771 | 9.5 | | 4 | 0.6020 | 12 | | 5 | 0.6990 | 14 | | 6 | 0.7781 |15.5 | | 7 | 0.8451 | 17 | | 8 | 0.8451 | 18 | | 9 | 0.9030 | 19 | | 10 | 0.9542 | 20 | -------------------- ■0x03.) dBを使う理由  例えば10,000倍という表現を80dBと表現できることはわかった。しかし、これ でどんな恩恵が得られるのかはまだよくわからない。逆に、dB表記に変換するた めにlogの計算をしなければならないのは面倒である(上の表を使えば電卓は不要 だが、対応を確認する手間はある)。  倍率の掛け算・割り算の計算がたくさんあるときに、dB表記が役に立つことが 実感できる。 例:72×12[倍]をdB表記で計算する。  72=8×9=2×2×2×3×3=6+6+6+9.5+9.5[dB]=37[dB]になる。一方、12=4×3=2+ 2+3=6+6+9.5[dB]=21.5[dB]になる。よって、72×12[倍]=37+21.5=58.5[dB]となる。  また、72÷12倍をdBを使って計算してみる。72[倍]=37[dB]、12[倍]=21.5[dB] なので、72÷12[倍]=37-21.5=15.5[dB]となる。 ◇  このように一旦dBの値に変換してしまえば、比率の掛け算はdBの足し算、比率 の割り算はdBの引き算として計算できるのである。これは対数が次の性質を持つ ことから明らかである。 ・log(A×B)=logA+logB ・log(A/B)=logA-logB  例えば、電子回路の世界ではG〜p、即ち10^(-12)〜10^9の数値がよく使われる。 つまり、非常に広い範囲の数が扱われる。さらに増幅器などの存在があるため、 入出力の比率を表現する機会が多い。こういう場面でdBは計算を楽にしてくれる 道具として役立つのである。 ■0x04.) dBの計算例20問 ○問1:20倍は何dBか? 20[倍] =2×10[倍] =6[dB]+20[db] (∵dB表から2[倍]=6[dB]がわかる。10[倍]=20×log10[dB]=20[dB]) =26[dB] ○問2:88倍は何dBか? 88[倍] =8.8×10[倍] =18.9+20[dB] (∵電卓あるいはセミログ表より8.8[倍]=18.9[dB]) =38.9[dB] ○問3:1倍は何dBか?  1=10^xを満たすxを求めて20倍すればよい。x=0より、20倍しても0である。よっ て、1[倍]=0[dB] ○問4:256倍は何dBか? 256[倍] =2^8[倍] =6×8[dB] =48[dB] ○問5:0.03倍は何dBか? 0.03[倍] =3/100[倍] =3×(1/100)[倍] =9.5+(-40)[db] =-30.5[dB] ○問6:-6倍は何dBか?  log(-6)は実数の世界では存在しないので、dBに変換はできない。つまり、負の 数の倍数をdBに変換できないといことである。 ○問7:-6dBは何倍か?  2倍は6dBであったので、-6[dB]=1/2[倍]となる。 ○問8:20dBは何倍か?  10倍であることはこれまで見た通り明らか。 ○問9:3dBは何倍か?  3dBは6dBの半分である。dBを半分にするということは平方根を求めることだっ たので、3dBとは2倍の平方根、即ち√2倍である。 ○問10:-3dBは何倍か?  3dBは√2倍であることは問9でわかる。よって、-3[dB]=1/√2[倍]となる。 ○問11:50kgは何dBか?  dBは2つの値の比を表す。つまり、1つの規準値があり、もう1つの値が基準値か ら何倍かであるかを示すときにdBが使われる。  よって、50kgというだけでは基準値がないので、dB表記にはもちろんできない。 ○問12:100mは何dBか?  問11と同様に、dB表記にはできない。 ○問13:10%は何dBか?  パーセントは比率なので、dBで表示可能である。 10[%] =0.1[倍] =20log(1/10)[dB] =20log1-20log10[dB] =0-20[dB] =-20[dB] ○問14:60%は何dBか? 60[%] =0.6[倍] =6/10[倍] =15.5[dB]-20[dB] =-4.5[dB] ○問15:+10%は何dBか? +10[%] =110[%] (+10%は元の量に+10%という意味だから) =1.1[倍] =20log(1.1)[dB] =20×0.04139[dB] =0.828[dB] ○問16:-10%は何dBか? -10[%] =90[%] =0.9[倍] =20log(0.9)[dB] =20×(-0.04575)[dB] =-0.915[dB] ○問17:5等星の明るさは6等星の明るさの2.51倍であり、これは何dBか? 2.51[倍] =20×log(2.51)[dB] ≒20×0.3997[dB] =7.994[dB] ○問18:通信回線で使用される通信ケーブルは、電線自身が持つ抵抗や絶縁体の 漏れコンダクタンスなどにより線路損失が生じる。この減衰量が伝送損失である。  伝送損失[dB]は線路長に比例して増加する。1km当たりの線路損失が0.8dB(即 ち0.8[dB/km])のとき、35km全体の減衰量はいくつか? 減衰量 =0.8[dB/km]×35[km] =28[dB] ○問19:20dBは何Npか?  常用対数の場合はdBだが、自然対数の場合はNp(ネーパー)という。dBとNpは 次のような関係を持つ。 1[dB]=8.686[Np]  よって、20×8.686=173.72[Np]である。 ○問20:1Wは何dBmか?  600Ωの抵抗に1mWの電力を加えると、抵抗の両端に0.775Vが発生する。この0. 775Vを0dBmという規準にする。  1Wは1mWから見ると、10^3倍である。よって、1[W]=30[dBm]となる。 ■0x05.) dBと伝送量  信号を通信ケーブルで遠距離の地点に伝送する場面を図に単純化すると次のよ うになる。   Iin 通信ケーブル Iout    → ------------- →    -------------|-----------|-------------   | ↑ | | | ↑ 信号○ |Vin | 伝送路 | □負荷Z |Vout   | | | | | |    -------------|-----------|-------------    -------------   送端 Pin 受端 Pout  このとき、伝送能力と伝送量は次のように計算できる。 ・(伝送能力)=(受端電力)/(送端電力)=VoutIout/VinIin=Pout/Pin ・(伝送量)N=10log(伝送能力)=10log(Pout/Pin) [dB] ←(*)  ここで、Pin>Poutのとき、即ちN<0のときは、伝送損失が起きている。つまり、 Nは減衰度を意味する。  一方、Pin<Poutのとき、即ちN>0のときは、電力利得が起きている。つまり、 Nは増幅度を意味する。  また、線路の任意の点から送端側・受端側をみた(特性)インピーダンスが等 しいとき(インピーダンス整合が取れているとき)、伝送量Nは送端・受端の電圧 または電流を使って次のように計算できる。 N=20log(Vout/Vin)=20log(Iout/Iin) [dB] ←(**)  (**)が成り立つのは次の理由による。  元々のdBは電力の比で考えるが、インピーダンス整合が取れているときは送端 側と受端側の抵抗値は同じである。この抵抗値はRと置くと、次のような関係を満 たす。 ・Pin=Vin^2/R ・Pout=Vout^2/R  これを(*)に代入すると、次のように式を展開できる。 N =10×log(Vout^2/Vin^2) ←Rは通分した。 =10×log(Vout/Vin)^2 =20×log(Vout/Vin) □ ■0x06.) dBと増幅器  増幅器の性質を示すひとつの指標として、入出力の増幅度が用いられる。増幅 度は比率なので、dBで表現されることが多い。  増幅器を使ったときの図は、0x05での図と非常に似ているため、(*)の公式もそ のまま成り立つ。 増幅器 ------------- ------------|-- |------------- ↑ |↑ | | ↑ |Vin |□負荷Rin | □負荷Rout|Vout | || | | | ------------|-- |------------- -------------  また、(**)の公式が成り立つためには、増幅器の内部抵抗Rinと負荷抵抗Routが 一致していればよい。 例:マイクから実効値2mVの入力信号を入力され、出力としてスピーカーに駆動す る出力信号200V(実効値)を出力するアンプを考える。このアンプの電圧増幅率 は次のように計算できる。 N=20×log(Vout/Vin) ←(*) N[dB] =20×log(Vout/Vin) =20×log(200/0.002) =20×log(100000) =20×log(10^5) =20×5 =100 ◇  増幅器が何段にも繋がっていても、dBで計算すれば足し算・引き算だけで比率 を計算できるわけである。  なお、増幅器だけでなく、減衰器でも同様の議論が可能である。  さらに、電気通信回線には、伝送損失を補償するために増幅器が挿入されてい ることが多い。つまり、通信ケーブルと増幅器が組み合わさった回線であったと しても、伝送量を簡単に計算できるのである。 ■0x07.) dBと音  人に刺激を与えると、その人は何かを感じる。このとき生じる感覚の大きさは、 刺激の値に比例するのではなく、刺激の値の対数に比例することが知られている。 これをウェーバー・フェヒナの法則という(1840年に発見された)。  刺激Iを⊿Iだけ増加させたときに、感覚Lが⊿Lだけ増加するときに、次の関係 式を満たす。 ⊿L=K(⊿I/I)  つまり、L=K×log(I)が成り立つ。  この法則は、刺激の大きさが極端に大きい場合、極端に小さい場合を除き、よ く成り立つという。人間に与えられる刺激には色々あるが、特に音の刺激につい てはこの法則がよく当てはまる。  例えば、人間の耳は基本的に音のエネルギーが10倍になって、ようやく2倍大き くなったと感じるわけである。  さらに、音は空気の振動で伝わる。このとき空気中に圧力の高い部分と低い部分 が生まれる。その圧力の変化量のことを音圧といい、パスカル(Pa)という単位が 使われる。  この音圧でも音量の大きさを表すことができる。人が聞き取れる一番弱い音の強 さは最小可聴限界という。この最小可聴限界は1kHzにおいて、0.0002μbarである (1μbarは水柱でいうと、1mmの1/1,000の圧力、即ち10μmの圧力のこと)。そこ で、この値をdBの規準とする。  音圧レベル(SPL:Sound Pressure Level)は次のように定義できる。 SPL=20log((音の強さ)/0.0002)[dB]  通常、人が耳にするSQLには100万(=10^6)倍、即ち120[dB]の差がある。120dB という値は小さいので扱いやすい。  こうした理由により、音響関係ではよくdBが登場するのである。音圧については 詳細はWB17を参照してもらいたい。 ■0x09.) おわりに  今回の記事では比率を表すdBについて注目した。身の回りにはdB以外にも比率 を表すものがある。例えば、地震のマグニチュード、酸性度を示すpHなどである。 興味がある方はそれらの比率の定義も調べてみると、面白い発見があるかもしれ ない。 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第4章: オウム信者の実像と地下鉄サリン事件の目的 --- 著者:ローリングクレイドル x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) はじめに  筆者は数年前から、取材と個人的興味でオウム真理教信者と交流し、教団施設 にも足を運んだ。完全に内部までは踏み込んではいないレベルなので、彼らの素 顔と事件の意味をどの程度理解できているかは心もとない気もするが、上祐史浩 氏や荒木浩氏といったマスコミに何度も顔を出している人ではなく、無名の信者 がどういったことを考え、なぜオウムに入り、なぜ地下鉄テロが起きたのか、自 分なりの現在の考察をまとめた。 ■0x02.) オウムの現在  まず最初に、オウム真理教が分裂しているという現状から少し説明。オウムは 麻原彰晃(松本智津夫)死刑囚の逮捕後にアーレフと改名。その後、脱・麻原を 目指す上祐氏を中心とした100名ほどのグループが離脱し、宗教団体「ひかり の輪」を立ち上げた。  分裂の理由は、上祐氏と麻原家(麻原氏の妻・松本知子氏、アーチャリーこと 三女・松本麗華氏)の対立といわれる。  ワンマン社長が死んで(麻原氏は執行前だが)、血縁関係のない新社長と前社 長の家族が揉めるというのはよくある話だが、その辺の事情は宗教団体も変わり ないようだ。  アーレフは「麻原回帰」を掲げ、今でもセミナーと称し、一週間ぶっ続けで麻 原氏の説法ビデオを朝から晩まで見るという修行などをしているという。  アーレフの代表を務めていた野田成人氏から聞いたことなので、間違いないだ ろう。これは以前から報道されていたオウムの姿と変わりなく、個人的に興味が 持てなかったのと、アーレフはマスコミを拒絶していることもあり、自分は脱・ 麻原を掲げた上祐氏の「ひかりの輪」にターゲットを絞った。 ■0x03.) 無名の信者の素顔  ひかりの輪信者との最初の接触は、何とミクシィである。上祐氏をはじめ、ひ かりの輪信者はミクシィにアカウントを持っている人が多い。  そこでオウム創設時(前身団体の『オウム神仙の会』)からの男性信者と経理 担当の女性信者と仲良くなり、上祐氏の説法会を見学したいと申し込んだ。上祐 氏の説法は、難しい表現を使って頭の良さを醸しだしてはいるが(実際、頭はい いのだろうが)、環境問題に触れて「人間の自業自得」であるとか非常にありき たりなつまらないものだったので言及しない。  それよりも、自分が興味があったのは一般信者だった。  相手側に入信の勧誘ができるかもとの期待があったのだろうが、駅まで迎えに 来てくれた女性信者ととても話し方が穏やかで、こちらの質問にはきちんと考え ながら真面目に答えてくれた。  はっきり言ってしまえば、いわゆる世間の「一般人」よりも、彼らの方が信用 できる。なぜかといえば、幹部は別にして、一般信者は出世欲や損得勘定がなく、 上から言い含められなければウソをつくことも苦手だ。  ただ、やたらとノンビリしている印象がある。  ひかりの輪は分裂後は信者が減るばかりで、かなり経済的に困窮していた。さ らに解散を求める世間の声も厳しくなる一方だが、その状況を彼らはあまり意に 解しておらず、悟りがどうとか仏陀の本当の教えはこうだとかいう話題にしか興 味を持っていない。  それもそのはずで、彼らは大学を出てそのまま入信したり、会社勤めをしても 馴染めなかった者が大半であり、あまり世間を知らないのだ。どんな社会状況に なっているか、実感を持てないのだろう。  それでいて、彼らは非常にプライドが高い。とにかく「悟りたい」という願望 が強く、あまりにそれを願うのは彼らが否定しているはずの「煩悩」なのではな いかと思えるほど。これは別に高学歴の者が多いオウムに限ったことではなく、 宗教の出家者というのは実家が寺で仕方なくなどの場合を除けば、どこかしら「 自分は他の連中と違う」「選ばれた者になりたい」という意識があるものだ。  特にオウム信者は、年齢的に70〜80年代のアニメや超能力ブームの影響を 強く受けており、「宇宙戦艦ヤマト」の使命感に胸を躍らせ、「AKIRA」の 超能力に憧れ、挙句の果てに「ムー」を真面目に読んでしまうようになったとい う人が結構いる。  プライドだけが肥大した理想主義の世間知らず。  ちょっと厳しい言葉で表現すると、社会では「ボンクラ」と呼ばれる類の人達 である。  ただし、彼らは真剣に世の中の救済を考え、仏陀の教えを真面目に研究してい るのは間違いない。ただ、大事な「実」の部分を学ぶ社会経験がともなっておら ず、それが新興宗教団体の主張がチグハグに感じる要因ともなっている。 ■0x04.) 脱会する人々  取材をしてから、いろいろな信者と親交を持たせてもらったが、自分と面識の ある人だけでも数人の脱会者が出た。  ひかりの輪は、麻原氏の影響を排除することを宣言し、いわゆる「教祖」を置 いていない。上祐氏はあくまで「代表」であり、みんなで仏陀の教えを研究しま しょう、という主旨の団体だと自分は説明を受けた。  もちろん、麻原氏の影響が完全にないわけではなく、例えば果物の種を捨てる ことを禁じているのだが、それは果物の種を捨てるのも「殺生」とする麻原氏独 自の考えからだ。ただし、教義全体を見れば旧オウムの影響は消えているといっ ていいだろう。  おそらく、上祐氏は麻原氏に対するこだわりが少なく、顔が知られ過ぎて社会 復帰は到底できない自分の地位を守りたいという意識の方が強いと思われる。そ れに頭のいい上祐氏のことだから、旧オウムの教義を復活させて批判を浴びるデ メリットくらいは計算できるだろう。  とはいえ、麻原氏のような絶対的存在がいないと、不安になる人もいるようだ。  最初に仲良くなった男性信者は、「ひかりの輪を脱会します」とミクシィの日 記で発表した。「やっとこの人も目が覚めたのか」と思ったら、翌日からトップ 画像がサイババになっていた…  どうやら、サイババの信者に宗旨替えしたようだった。  彼らは「この人についていけば間違いない」という対象を求め、自分で道を切 り開くことをやめてしまった人が多い。だから、象徴的存在がいない「ひかりの 輪」に、彼は満足できなかったのだろう。もちろん、師となる人がいる方が修行 も効率よく進むのだろうが、それよりも、根拠のない自信を持った絶対的存在に 包みこまれたいという意識が強いように感じられた。  別の元信者は教団を出て日雇いのアルバイトを始め、「わたしは教団では『師』 と呼ばれていたんですが、今は年下の社員に怒鳴られてますよ…」と複雑な表情 で語っていた。社会に出たことがなく、教団内で尊敬される地位を築いてきた者 にとって、教団での実績が何の役にも立たないという現実は、我々が思う以上に ショックなのだろう。  だが、これがショック療法となり、最近ではその元信者は客観的に見て、かな り現実が見えてきたように感じる。教団で培ったヨガの技術を生かし、インスト ラクターを務めるなど、自分の能力の使い方も分かってきたようだ。 ■0x05.) 地下鉄サリンテロが起きた原因  テロの原因については、さまざまな説が飛び交ってきたが、麻原氏が精神錯乱 状態になっている今、正解は永遠に分からない。ただ、自分が信者と交流し、あ る程度、教団の内部を見た限りで推測してみたい。  目的としては、彼らが本当にできると思っていたかは別にして、自分たちの教 義に沿った世の中に変えたいと考えていたのは事実だと思う。  オウム程度の規模の団体であれば、やるなら武力しかない。  普通に考えれば、地下鉄やマンションの近くでサリンを撒く程度のテロをやっ ても何にもならないことは明白なのだが、オウムは本来は長所であるはずの真面 目さが仇となり、勝手な使命感に燃えてしまったのだろう。  自分を「正義」と思い込んだ人間は加減を知らず、無関係の人を巻き込むこと も建前さえできればば躊躇しなくなる。  麻原がその気になり、あとはイエスマンばかりの幹部が下の者に命令し、後戻 りできなくなったのだろう。  もしかしたら、その場のノリだけでバカなことをする大学サークルのような雰 囲気で、テロが決まってしまったのかもしれない。  擁護するわけではないが、上祐氏は唯一テロに反対していたという。結局は止 められなかったわけだが、彼は良い結果には結び付かないと冷静に分析していた のだろう。その当時から、麻原氏への絶対的な忠誠心はなく、いずれ自分がトッ プになりたいという意識があったのかもしれない。  真面目な人たちが、なぜ人殺しなんかをするのかという疑問を持つ方も中には いるだろう。  しかし、真面目だからこそ、テロなどというバカな行為に走るのだ。  例えば、創価学会や幸福の科学、阿含宗のような大きな新興宗教団体は、テロ などという割に合わないことはせず、政治に関与して権力中枢に影響を持ったり、 行事を開いて地元に溶け込んだりと、確実な方法で勢力の拡大を図っている。 これは利益を求める団体を運営するならば当然の方針であり、多少の無理をして 布施集めなど勢力拡大を進めたとしても、批判を抑えることができる。  団体経営という意味では、非常にクレバーで感心する。  一方のオウムは、武力革命などというバカな夢を見て破滅した。  彼らにクレバーさがあったならば、テロなどせず、武器や軍用ヘリの購入など といった無駄遣いすることもなく、着実に資金を集めて上層部が潤うシステムを 築いただろう。  要するに、彼らの真面目さと無邪気さ、そして世間知らずが招いた、テロにも 値しない子供じみた犯罪だったと自分は考える。  ある女性信者は、秋葉原連続殺傷事件の加藤智大被告に親近感を覚えると言っ ていた。現実とプライドの折り合いがつけられず、自分でも何かコトが起こせる と証明したかった加藤被告とオウムは、犯行に至った経緯が幼稚にもかからわず、 重大な結果を招いたという部分で確かに似ている。  同じ無謀なテロでも、キューバ革命でのカストロは(キューバ革命の是非は置 いておく)、一般人を巻き込むことを良しとせず、捕虜となった敵軍兵士を無条 件に解放するなど、武力の使い方、武力を使う意義をわきまえていた。もちろん、 人心掌握という意味もあったろうが、テロとしては非常に珍しくルールに則って おり、揺るぎのない目的意識が革命を成功させた要因の一つなのは間違いない。  オウムはテロといっても目的意識が希薄で、ピストルを手にした子供が遊び半 分で無差別に一般人を射殺したようなものだった。  官僚や裁判官を狙ったテロにもかかわらず、無関係な一般人しか殺していない というお粗末さが、その証拠といえるだろう。  偽善者ぶるわけではないが、こんな幼稚な犯罪で無駄に命を落としたり、重大 な後遺症が残ることになった被害者には同情を禁じえない。 ■0x06.) 終わりに  まとめてみるなどと言った割に、あまりまとまってないかも知れないのだが、 とりあえず自分の考えは記した。正しい答えか確証が得られない問題であるので、 いろいろな見方はあると思う。  少なくとも、一時期マスコミで連日のように報道された「オウム信者」の姿は、 彼らの一面でしかないどころか、マスコミによってつくられたイメージが多分に あるとだけは言える。  現場で見なければ、情報の波によって勝手な偏見だけが形成されていくのだと いうことは間違いないだろう。 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第5章: お知らせ --- x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ○Wizard Bible(http://wizardbible.org/)では随時、執筆ライターを募集して います。  扱う内容のテーマは広義での「under ground」です。例えばハッキングやセキ ュリティからピッキングなどと幅広い内容を考えています。また特殊な職業や趣 味の解説などでも構いません。  一回きりでも構いません。また必ず毎回連載する義務もありませんので、でき る範囲で構いません。気軽に声をかけてください。 ○Kenji AikoさんがQ&Aを作ってくれました。初めて参加する人でもわかりやすく 書かれていますので、参考にしてください。 http://wizardbible.org/wbQandA.html ○Wizard Bibleに参加希望の方は気軽にメール(ipusiron@gmail.com)ください。 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ---- 第6章: 著者プロフィール --- x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■金床 ●Job: プログラマー ●Web: http://guardian.jumperz.net/, http://www.jumperz.net/ ●Mail: anvil@jumperz.net ●Comment:  今回のネタのように、バグを強引に修正してしまうことをゲリラパッチングとかマンキ ーパッチングとか呼ぶらしいです。そういえば書き忘れましたが、仮想ディスクをあ らかじめ容量を割り当てるタイプにしておくこともパフォーマンスを安定させる ために重要です。また、徐々に大きくなっていくタイプにしてしまった場合は、 ゲストOSを停止できる際にデフラグを行うとパフォーマンスがよくなったりしま す。 ●必須ソフトウェア  ついこの間のWB45あたりでお題が「よく使うソフトウェア」だったような気が するんですよね。フツーにネタかぶってんだろイプロム。そんなわけで今回は「お気に 入りのヘッドホン」についてお話しようかと思います。  数年前からウルトラゾネのProline650というヘッドホンを愛用してました。低音の再 生能力が半端なくて(低音がうるさいのではなく、低音を出そうとするときれい に再生できる、という意味です)店頭で視聴したときには感動しました。見た目 がちゃちくてださいんですが、音が良ければどうでもいいです。  そんなわけで「これを超えるヘッドホンにはもう出会えないカモ…」とか思って いたんですが、しばらく情報収集を怠っているうちにゾネはすっかりメジャーなメ ーカーになって(まぁ音がいいから当たり前です)、新しい機種もビシバシ登場し ていました。そこで久しぶりにアキバに繰り出し店頭でチェック!してみることに。 今回チェックに持っていったのはウタダヒカルの比較的新しいアルバムです。ウターダは 金があるらしく、最近のアルバムは音がめちゃくちゃいいんですね。ベースの低 音が半端なかったり、コーラスの重ね方に超気合い入れてたりと、ヘッドホンの 視聴にはうってつけの音源です。  ゾネ以外のメーカーは相変わらず視聴して2秒で投げ捨てたくなるようなものば かりでがっかりでした。Sonyのタイヤぽいやつとかだめすぎ。こんな汚いのは低音と は言えません。  さてゾネです。一番期待していた15万円くらいするEdition8というのはいささか 想像と異なる音で、装着間も含め私の好みではありませんでした。しかしProline 系が進化したPro900というヤツは衝撃的な音でした。どんだけ低音出るんだよ!と いうつっこみを心の中で入れ、ニヤつきながらウターダをきく筆者(きんもー)。音圧 が強く、まるでドラムセットが目の前にあるようです。ヘッドホンなのになぜか 腹に響いているような錯覚を覚えます。  あらかじめネット上での評判は調べていたのですが、まさにその通りという感 じで、低音が強すぎます。低音を圧倒的にきれいに再生できる能力があるのはい いのですが、もともとの音源よりも低音を強調しすぎており、それは明らかにだ めな点でした。  そこでイコライザで低音を少し抑えてやると、やばいくらい気持ちいい音になりま した(まぁ本当はイコライザはバイパスできた方がうれしいんですが)。もともとゾ ネは広がり感のある特殊なヘッドホンなのですが、その広がり具合がProline650よ り遙かにいい感じになっています。これはすごい!キモチイイ!Proline650を超えるヘ ッドホンはないだろうと思っていたのに、軽く上を行かれました。そんなわけで、 上には上があるということを勉強でき、幸せなオーディオライフを送っておりま す。ゾネの中の人、ありがとう! ■嶋崎 聡 ●Job: プログラマー/その他いろいろ ●Web: http://d.hatena.ne.jp/sato_c/ ●Mail: motosumi64@gmail.com ●Comment:  前回ネタがないから…と思っていたのですがネタがないなら作れということで、 Androidを連携させたものを作っていこうと思います。元ネタは先日のAVTokyoの ときに某氏と某氏と話してた内容の劣化版みたいなもんということで。  それはさておき、PBX氏のカバンの中には何個電話機が入ってるのか知りたい今 日この頃です。 ●必須ソフトウェア:  先日OSを入れ替えましたが、そのときに最初に入れたソフトは秀丸とExplzhで した。あとはMSOffice(特にExcel)とTrueImageを入れてそこまでの状態でバック アップすればいつでもインストール直後の状態に戻せて便利かと。 ■IPUSIRON ●Job: プログラマー ●Web: http://akademeia.info ●Mail: ipusiron@gmail.com ●Comment:  12月になったらいきなり仕事が忙しくなってしまったため、今回のWBのリリー スは非常に遅れてしまいました。本当に申し訳ありませんでした。  今回のWBの記事には前回で取り上げたコミットメントスキームの続きを取り上 げる予定でしたが、もう少し考察したかったので今回は保留しました。年末年始 に田舎に帰ったときにじっくり考えたいと思います。 ●必須ソフトウェア:  仕事ではEclipse(これは属するプロジェクトにも依存するかも)とTortoiseS VN、自宅では秀丸とSkypeが必須ですね。  今後は原稿を管理するのにTortoiseSVNを活用してみようと思っています。 ■ローリングクレイドル ●Job: ライター ●Web: http://yellowteardrops.web.fc2.com/ ●Mail: rollingcradle666@gmail.com ●Comment:  個人ニュースサイト運営と、WEB媒体「メンズサイゾー」などで記事執筆も しております。メンズサイゾーでは、なぜかドラッグネタを担当することが多い …。前回に続きWBの雰囲気と合わない上に今さらオウムネタで恐縮ですが、読 んでいただけたら幸いです。今回の記事への感想や、レイヴ関連、インターネッ トの話題、サブカル系マンガ、芸能、アングラ関連での執筆依頼などがありまし たら、気軽にメールをください。 ●必須ソフトウェア  完全な文系人間なのであまり詳しくはありませんが、文字数指定のある記事を 書く用にカウントツール「StrCount」は役立ちます。あとはラジオを聴きながら 作業したい時に「KeyHoleTV」という少々アレなソフトも。「深夜の馬鹿力」を聴 きながらの作業は最高です。