2003年10月30日木曜日

アイデアのつくり方

★★【アイデアの作り方 ジェームズ・W・ヤング著 TBSブリタニカ】



* 帯に「60分で読めるけど一生あなたを離さない本」と書いているように1時間で読める。
* 一生離さないかどうかはまだわからないけど、本質だけに絞って簡潔書かれている。
* アイデアを生む課程は、下記と書いてある。
o 1.資料集め     対比:食料集め
o 2.資料の咀嚼    対比:食べる
o 3.寝かせる     対比:消化
o 4.アイデアの誕生  
o 5.アイデアの具体化と展開
* 「なにそれ?当たり前じゃん」と思った人は、読んでみよう。
* もう一つ、心に残ったのは「どんな技術を習得する場合にも、学ぶべき大切なことはまず第一に『原理』であり第二に『方法』である。」と言うものがある。
* 他にも、使える言葉がいっぱいあります。2003-10-29 (水) 23:34:27 (柴田ひ)

2003年10月26日日曜日

地名の世界地図

【地名の世界地図 21世紀研究会編 文春新書】

* ぼちぼち読んでいる途中。
* トリビアより、もうちょっと役に立つかなと言う地名に関する知識が得られる本。
* 暇なときに(暇なときがあればだけど)いいかも。2003-10-26 (日) 01:00:47 (柴田ひ)


もしも宮中晩餐会に招かれたら

★【もしも宮中晩餐会に招かれたら 渡辺誠著 角川Oneテーマ21】

* まぁ、こんな本もあると言うことで。
* 招かれることはないと思うけど、招かれると大変だということが良くわかった(^^; 2003-10-26 (日) 00:57:01 (柴田ひ)


職人

★★【職人 永六輔著 岩波新書】


* 本書の前半に書かれている職人の一言を引用したものが心に響く。
* 例えば、
o 「風邪を引くのはサラリーマン。職人は風邪を引きません。風邪なんかひいちゃいられないからです。」
o 「教えると言うことは教わると言うことです。」
o 「わたし、下手な人には教えません。下手な人に教えると、自分まで下手になってしまうものです。」
o 「職人が『何かすることありませんか』なんて言うな、おまえ。する事探して、黙ってやってろ!」
o 「褒められたい、認められたい、そう思い始めたら、仕事がどこか嘘になります。」
* 前半だけ読んでも損はしない。2003-10-26 (日) 00:53:57 (柴田ひ)


孫子・勝つために何をすべきか

★★【孫子・勝つために何をすべきか 谷沢永一/渡部昇一著 PHP文庫】


* 2000/4に単行本で出ていたものが、2003/10に単行本で出た。孫子の本はいくつか読んでいるが、これも買ってしまった。
* 太平洋戦争の事例が頻繁に出てきたり、右翼左翼の批判など、今ひとつの点もあるが、ビジネス書として読む必要あり。
* きれい事ではなく、競争社会で勝つためのヒントが相変わらず多いと感じる。2003-10-26 (日) 00:53:57 (柴田ひ)


2003年9月22日月曜日

SHARP Mebius MURAMASA PC-MV1-VC1覚え書き

SHARP Mebius MURAMASA PC-MV1-VC1覚え書き/(柴田ひ) 2003-09-22 (月) 00:23:14



  • Intel chip以外のノートPCは初めてだったので、いろいろ楽しめてます。

    • デスクトップだと、古くはAMD 5x86-133やCyrix 686、自宅のBBIQゲートウエイにVIA-C3を使ったVIA-EPIAなどを使っていて、決してIntelべったりではないのですが。


    • このノートPCはAMD Athlon XP-M 1500+と言うやつで、ヨドバシで3番目に安かったので決めました。ちなみに1番と2番目に安かったのは、薄っぺらいmuramasaの方。


  • 無線LANが内蔵されていると思ったら、マニュアルを読むとオプションだった。ヨドバシの店員は内蔵していると言ってたような気がしたんだけど...

    • オプションが搭載できると思われる底面のカバーの下には、ミニPCIスロットがあり、モデムらしいモジュールがあった。

    • いろいろやってもカーネルで認識されずに悩んでいのだが、マニュアルを先に見ておくんだった(^^;


  • 初期のディスクレイアウトには謎のパーティションがあった。たぶん、マニュアルの記述などから推測すると、HDDからのリカバリを行うためのデータが入っているのだと思われる。

    • 買ってすぐにユーザ登録もせずにリカバリCDの作成を行ってすぐにfdiskでWindowsXPのパーティションを消してLinuxを入れた。

    • 下記のパーティションのうち、1,2はLinuxを入れるときにfdiskでで切り直した、3はオリジナルのままである。




Disk /dev/sda: 255 heads, 63 sectors, 4864 cylinders
Units = cylinders of 16065 * 512 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 4012 32226358+ 83 Linux
/dev/hda2 4013 4226 1718955 82 Linux swap
/dev/hda3 4227 4864 5124735 de Dell Utility




  • 内蔵HDDは日立製DK23EA-40であり、40GB、4200rpm、消費電流0.5Aであった。

  • 上記HDDを日立製DK23FB-60 (60GB、5400rpm、消費電流0.6A)に交換した。

    • Webであれこれ調べたが、どこのねじを外せば良いのか良くわからなかった。よって、仕方なく底面のねじをすべて外した。

    • HDDの場所は、回転音や温度などから、左手のパームレストの下だと予想していたためキーボード手前のパームレストをいじっていたところ、そこだけパカッと外れた。今にして思えば、パームレストの下のねじだけ外せば良かった。

    • HDDには、金属(ステンレス製と思われる)カバーとコネクタ部分にコネクタ形状変更をさせるような延長コネクタがついていた。


    • 金属カバーは、底面のねじで固定されており、ゆっくり引き出すとHDDごと本体から取り外せた。

    • カバーとHDDの4本のねじを外して、延長コネクタもゆっくり外した。

    • 交換するHDDを同様にカバーに取り付け、ケースに挿入した。

    • 後はねじを締めておしまい。

    • ブート時のBIOSでも60GBと認識されていた。


  • 交換後のパーティションは以下の通り。ディスクが大きくなったこともあり、話のネタにリカバリCDからWindows XP Home editionを戻してみた。一応きちんと動いている。

    • パーティション3は、元のHDDをUSB2.0インタフェースの外付けケースにつっこんだ後でddにてコピーしている。

    • swapはこんなに大きくしたくなかったのだけど、パーティション1と2を適当に割り当てていていた関係で、このようなサイズになった。




Disk /dev/hda: 255 heads, 63 sectors, 7296 cylinders
Units = cylinders of 16065 * 512 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 1275 10241406 7 HPFS/NTFS
/dev/hda2 1276 6374 40957717+ 83 Linux
/dev/hda3 6375 7012 5124735 de Dell Utility
/dev/hda4 7013 7296 2281230 82 Linux swap


  • 再インストールはDebianの素にしようかとも思ったけれど、頂き物のARMA2.1があるので、これにしました。Atokも入っていて、それなりに幸せ。

    • ただし、ARMAの素のカーネル(2.4.18も2.4.19も)のままだと、apmかacpi周りが何となくおかしく、CPU-FANのあたりから「キーン」という音がでるものの、回転していない状況になる。非常に高温になり危険な状態だったので、ブロアスプレーで冷やしながら、インストール実行。

      • 最初は、HDDを交換したときに、FAN近辺をいじってしまって物理的に何か接触していて回らなくなったのかとビビッたが、リブート時のBIOS動作中は回転して、カーネルブートとともに回転が止まったので、ソフト的なものだとわかった。

      • ちなみに、HDD交換前の自前Makeしたカーネルでは、きちんとFANは回転していた。


    • インストール終了後、取り外したHDDからサクッと以前のカーネル、カーネルモジュールをコピーしてリブートさせたところ、FANも回って一安心。



  • 内蔵のデバイスはlspciによると、下記のようになっている。


00:00.0 Host bridge: VIA Technologies, Inc. P/KN266 Host Bridge
00:01.0 PCI bridge: VIA Technologies, Inc. VT8633 [Apollo Pro266 AGP]
00:05.0 CardBus bridge: Ricoh Co Ltd RL5c475 (rev b8)
00:05.1 FireWire (IEEE 1394): Ricoh Co Ltd: Unknown device 0551
00:06.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C(rev 10)
00:10.0 USB Controller: VIA Technologies, Inc. USB (rev 80)
00:10.1 USB Controller: VIA Technologies, Inc. USB (rev 80)
00:10.3 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 82)
00:11.0 ISA bridge: VIA Technologies, Inc. VT8233A ISA Bridge
00:11.1 IDE interface: VIA Technologies, Inc. Bus Master IDE (rev 06)
00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233 AC97 Audio Controller (rev 50)
00:11.6 Communication controller: VIA Technologies, Inc. AC97 Modem Controller (rev 80)
01:00.0 VGA compatible controller: S3 Inc. VT8751 [ProSavageDDR P4M266] VGA Controller


  • 上記のうち、CardBus、FireWire、Ethernetは特になにも考えずに認識されている。

  • AudioはOSSでは今ひとつ動きが変(irqの処理がおかしいのか、短い音声データの再生でも音が鳴り終わらずに、とぎれとぎれになりながら長くなり続く。

  • 仕方がないので(?)alsaを入れている。snd-via8233(バージョンによっては、snd-card-via82xxかな?)で、音はなっている。

  • ARMA2.1の素のカーネルだと、IDEコントローラもきちんと認識されず、内蔵HDD、内蔵DVD/CD-RWドライブもPIO転送になってしまいます。これもカーネルを作り直して、/etc/init.d/ideを書き直せば大丈夫。このように書いています。



#!/bin/sh
# this script was generated by ogl-tools

case "$1" in
start)
echo "Setting IDE devices ..."
/sbin/hdparm -c 1 -d 1 -m 16 -X 69 /dev/ide/host0/bus0/target0/lun0/disc
/sbin/hdparm -c 1 -d 1 -m 16 -X 69 /dev/ide/host0/bus1/target0/lun0/cd
;;
stop)
;;
restart)
echo "Reloading IDE setting..."
/sbin/hdparm -c 1 -d 1 -m 16 -X 69 /dev/ide/host0/bus0/target0/lun0/disc
/sbin/hdparm -c 1 -d 1 -m 16 -X 69 /dev/ide/host0/bus1/target0/lun0/cd
;;
*)
echo "Usage : /etc/init.d/ide {start|stop|reload}"
;;
esac
exit 0


  • DMAをありにして、ディスクの回転数もちょっと速くなったおかげか、HDD交換前より何となくレスポンスが良くなった気がする。



  • 問題はVGAコントローラである。Xはvesaドライバで動くものの、アクセラレーションが全く効かないのでブラウザでのスクロールなどは、のたっとした感じ。

    • S3 ProSavageなので、何とかなりそうな気がしているけど、まだ手を出していない。

    • S3用のXサーバだと、「そんなチップは知らないよ」と言うメッセージで認識してくれない。

    • ちょっと探してみると、こんなのがあるらしい。 http://www.probo.com/timr/savage40.html


    • Debian woodyではXFree86-4.2.xが動いているため、 http://www.probo.com/timr/xf42sav-27t.tgz をダウンロードし、展開してしかるべきところに置いてみた。

    • /etc/X11/XF86config-4のDevice Sectionだけを下記のように書き換えました。



Section "Device"
Identifier "Card0"
# Driver "vesa"
Driver "savage"
BusID "PCI:1:0:0"
Screen 0
VendorName "VIA"
BoardName "VT8751 [ProSavageDDR P4M266]"
EndSection


  • リブートしてXが無事立ち上がった(^^)。LCDがちょっとちらつき気味で、明らかに挙動が変わっている。/var/log/XFree86.0.logも確認したところ、



(--) PCI:*(1:0:0) S3 unknown chipset (0x8d04) rev 0, Mem @ 0xe8100000/19, 0xf0000000/27


とでてくるが、その後の方で



(II) LoadModule: "savage"
(II) Loading /usr/X11R6/lib/modules/drivers/savage_drv.o
(II) Module savage: vendor="The XFree86 Project"
compiled for 4.2.1, module version = 1.1.27
Module class: XFree86 Video Driver
ABI class: XFree86 Video Driver, version 0.5


とあり、無事読み込まれた模様。



  • ブラウザを開いて、スクロールさせてみるが、サクサクしており、いい感じになりました。


2003年1月14日火曜日

network block deviceの実験

OBSSを使って題記の実験をしてみました。

修理から戻ってきてDebianをインストールしたOBSSをnbdのクライアントにして、
自宅LAN内のPentium4マシン(これもDebian)をnbdのサーバにしてみました。

また、それだけではおもしろくないので、nbdサーバ側は2つのサービスをあげて
それをsoftware RAID 1でmountしてみています(^^;


��サーバの設定>
まず、サーバ側の設定ですが、apt-get install nbd-serverの後の質問に答えますが、
最終的には/etc/nbd-serverを設定すればいいようです。
とりあえず、実験サーバでは下記のようにしています。

NBD_PORT[0]=7777
NBD_FILE[0]=/home/nbd-export1
#NBD_SERVER_OPTS[0] is unset, but can contain -r, -m, -c or -a.

NBD_PORT[1]=7778
NBD_FILE[1]=/home/nbd-export2
#NBD_SERVER_OPTS[1] is unset, but can contain -r, -m, -c or -a.

#See nbd-server(1) for their meanings
#
#If you don't want this file to be rewritten after installation or upgrade,
#uncomment the following line:
#AUTO_GEN=n

/home/nbd-export1と/home/nbd-export2は下記のようにして作っています。

# dd if=/dev/hda of=/home/nbd-export1 bs=2k count=1M
# cp /home/nbd-export1 /home/nbd-export2

その後、 /etc/init.d/nbd-server startでサービスが動き出します。
ps -axwwで見るとこんな感じ。

12512 ? S 0:00 /bin/nbd-server 7777 /home/nbd-export1
12513 ? S 0:00 /bin/nbd-server 7778 /home/nbd-export2
12514 ? S 0:24 /bin/nbd-server 7777 /home/nbd-export1
12515 ? S 0:26 /bin/nbd-server 7778 /home/nbd-export2

ちなみに、サーバのIPアドレスは192.168.0.100としています。


��クライアントの設定>
次にOBSS側でクライアントの設定です。
こちらもapt-get install nbd-clientの後の質問に答えますが、
設定ファイルは/etc/nbd-clientです。

実験マシンではこんな感じ。

# If you don't want to reconfigure this package after installing, uncomment
# the following line:
AUTO_GEN="n"
#
# Name of the first used nbd /dev-entry:
NBD_DEVICE[0]=/dev/nd0
#
# Type; s=swap, f=filesystem (with entry in /etc/fstab), r=raw (no other setup
# than to run the client)
NBD_TYPE[0]=f
#
# The host on which the nbd-server process is running
NBD_HOST[0]=192.168.0.100
#
# The port on which this client needs to connect
NBD_PORT[0]=7777
#
# The second networked block device could look like:
NBD_DEVICE[1]=/dev/nd1
NBD_TYPE[1]="f"
NBD_HOST[1]="192.168.0.100"
NBD_PORT[1]="7778"


/dev/nd0と/dev/nd1は以下のようにして作りました。
# mknod /dev/nd0 b 43 0
# mknod /dev/nd1 b 43 1

ここで/etc/init.d/nbd-client startでクライアントとして動き出しますが、
fsckが出来ないとか何とか文句を言われますが、無視して次へ(^^;

��file systemを作っていないから、文句言われて当然なので。


��クライアントでのsoftware RAIDの設定>
さらに、OBSS側でsoftware RAIDの設定をします。
apt-get install raidtools2を行った後に、/etc/raidtabを作ります。
実験OBSSでは以下のような感じ。

# raid-1 configuration
raiddev /dev/md0
raid-level 1
chunk-size 16
nr-raid-disks 2
nr-spare-disks 0

device /dev/nd0
raid-disk 0

device /dev/nd1
raid-disk 1


その後、
# mkraid /dev/md0
でうまく動けばサーバとクライアント間でネットワークのやりとりが発生し、
HUBのActiveランプが点滅を始めると思います。

これは、RAID1の構築(ディスク間の同期合わせ)を行っているためです。
この進み具合は cat /proc/mdstatを実行すればわかります。

同期合わせを行っているのもかまわずに(^^;、
# mke2fs /dev/md0
を行います。

��実はOBSをクライアントにした場合もやってみたのですが、
��このmke2fsでエラーになりました。原因調査予定。

同期合わせはこの間も進んでいますが、そのうち終わって/proc/mdstatを見ると
以下のようになるはずです。

Personalities : [raid1]
read_ahead 1024 sectors
md0 : active raid1 [dev 2b:01][1] [dev 2b:00][0]
2097088 blocks [2/2] [UU]

ここまで来たら(来る前でも良いのですが)、mountしてみましょう。
# mount -t ext2 /dev/md0 /mnt/

mount後のdfの結果はこんな感じです。

# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hda1 38198332 25646976 10610960 71% /
/dev/md0 2064144 1362136 597156 70% /mnt

��70%にもなっているのは、すでにファイルをコピーした後だからです。
��ちゃんとしたコピー時間は計っていません(^^;


��考察>
この例では、通常のファイルシステムに使っていますが、
nbdはswapにも使えるようなので、CFだけで組んでいるOBSSでも
かなりいろんなことが出来るようになると思います。

また、今回は1台のサーバに対してsoftware RAID1にしていますが、
これを2台に分けるとか、片方をlocal device、もう片方をremote deviceに
するなど行えば、none shared storageタイプのactive-standby構成の
クラスタも組めるのではないかと思っています。

��OBSSでここまでやるべきかと言うと、ちょっと疑問ですが(^^;

今後はnfsとの性能比較などもしてみたいと思います。


��参考文献>
/usr/src/linux/Documentation/nbd.txt
http://www.it.uc3m.es/~ptb/nbd/