birdCSS バグ, output_rdf プラグイン

CSS バグ

今朝方まで CSS のバグで IE では表示が崩れていたようです。Opera/Mozilla では問題なかったので見過ごしてました。

今回の問題は、これまで kaeru テーマの sidebar 対応を妙な具合にカスタマイズして使っていたんですが1、どうもそれが原因で小さいウィンドウサイズの時に本文が下へ飛んでしまう、という問題があったのですね。

そこで他の sidebar 対応テーマの CSS を見て、

  • div.sidebar は position: absolute; しつつ width を適当に規定。
  • div.main は margin-left で sidebar を避ける

という形に改造してみたわけです。

ここで問題だったのは、position: absolute; しているにも関わらず left や top などのパラメータを指定しなかったこと。Opera や Mozilla ではどうも規定値は今回の場合左上になるようなんですが、IE だけは、y 座標は他のブラウザと同じながら、x 座標については変なふうにセンタリングされた座標が選択されるようなのです。div.sidebar の親は body で、body でも align は指定していないのにこんなふうになっちゃうんですねぇ…。

結局のところ、暗黙値に頼ってはいけない、ということですね。気をつけよう。

output_rdf プラグイン

を使って index.rdf ファイルを用意しているんですが、これって隠された日記の更新も出力しちゃうんですね。うーん…。

bird洗濯機壊れた

洗濯機壊れた

自宅の東芝製洗濯機 (AW-A60XP(C)) がまた壊れました。
また、というのは、1年半ほど前にも「洗濯中に急に電源が落ちる」とかしまいには「電源が入らない」というような感じで故障し、修理を依頼してコントローラ部を交換していたから。確か 12,000 円くらいかかったと思います。
それから1年半しか経っていないのに、またしても全く同じ症状 (洗濯中に電源が落ちる) が出始めてしまったわけです。あゆみさんが調べてくれたところでは交換パーツの保証期限は3ヶ月しかないそうで、直そうと思うとまた1万円以上かかるとなると、もう新しいものを買っちゃえ、という結論になりました1
さて、いい機会でもあるので以前からあゆみさんが欲しがっていたドラム式を検討してみると、ほとんどの機種で乾燥機能が付いているせいか、普通の縦形に比べるととても高いのにびっくりしました。やっぱりまだまだ需要が少ないのかな。
しかしめげずにネットでいろいろ探してみたところ、2002年製の日立のドラム式洗濯機 (WD-74B ワンドリー)、(現在、公式にはオープン価格ですが、お店、kakaku.com によると) 希望小売価格 188,000 円が、なんと 77,700 円で売っているお店を発見!しかも地元!
というわけで念願のドラム式洗濯機を買うことに決めちゃいました。あーまたしても大出費。我が家の家計は大丈夫なのでしょうか?2

bird「暗号の秘密とウソ」読了, PC 自作 (2)

「暗号の秘密とウソ」読了

暗号の秘密とウソ 帯に書いてあった、「セキュリティは技術製品じゃない、プロセスだ」という言葉が全てを物語っている気がする。予防技術にばかり注目するのはおかしい、完全な予防技術など存在しないのだから、検知、対応まで引っくるめたセキュリティ・プロセスにこそ注目すべき1とか、各種の実際にあったお話2が面白かった。書かれていることはしごく当然なことなんですけどね。「コンピュータの」セキュリティ問題となると、なぜか皆そういう当然のものの見方が出来なくなっちゃう点が問題なんだろうなぁ。

ところで、この本誤植多すぎです。明らかに意味が通らない文がいくつかあって、そのたびにいちいち考えさせられる3のが結構ストレスたまります。あと、行頭に平気で長音符 (「ー」) が書かれているんですけど、こういうの気にならないんでしょうか。縦書きアルファベットも激しく読みにくい4。内容は良いのにもったいないです。

PC 自作 (2)

だいたい構成が決まりました。わくわく。

birdPostgreSQL チューニング(2)

PostgreSQL チューニング(2)

その後、Tuning PostgreSQL for performance というページを見つけ、大いに参考になりました。

wal_fsync_method
前に書いた通り、Linux 2.4 に普通の SCSI ディスク、という構成だと fsync が最速なようです。
wal_buffers
ドキュメントを読む限り、今回の場合大きくしてもそれほど効果無いはずです。しかし、ここに超巨大な値 (1Gbytes など) を指定すると一時的 (起動後しばらく) は性能がブーストされるようです。その後ずっと利用していると徐々に性能が劣化し、最終的には小さな値を指定した時と同じくらいの値に落ち着くようです。
shared_buffers
Oracle と違い、shared_buffers はメモリの許す限り大きくすればよい、というわけではないようです。今回の場合、max_connections * 4 くらいの値が最適なようでした。
checkpoint_segments
チェックポイント間隔を長くし過ぎると pause 時間も延びてしまいうまくない、というのは以前書いた通りです。今回はコンスタントな性能を目指すことにして、checkpoint_segment は 1 にしてみました。それにより多少オーバーヘッドは増えて (スループットは低下して) しまいますが、許容範囲内と判断しました。なお、合わせて checkpoint_warning を 0 にしておかないとログに warning が出力され続けて大変なことになります(笑。

他にも、auto commit よりも明示的に commit した方が早い場合があるとか、pg_autovacuum を利用するために stat オプションをいくつか true にすると多少性能が劣化する、などの現象が見られました。

結果的には、何も設定しなかった時と比較すると2倍前後高速化されました。やっぱり RDBMS はチューニングが大事、なんですねぇ…。

birdPSX のチューナ出力, 献血

PSX のチューナ出力

録画ではない、リアルタイムの放送を PSX で見ていた時に、1) スーパーインポーズされる字幕に微妙にモスキートノイズが乗っているような気がする、2) いわゆる「砂嵐」の見え方が普通にテレビで見るものと全然違う、ということに気がつきました。どうもリアルタイムな視聴でも MPEG エンコーダ/デコーダを通った画像になっているっぽい。録画モードを切り替えても別に表示品質が変わるわけではないので、録画用のストリームを常時生成しているわけでもなさそう。
OSD1 のことなどを考えると確かにその方が出力系をシンプルに出来そうな気もしますが、HDD/DVD レコーダって普通こういうものなのかな?
追記。しかしよく考えてみると、それでは例えば SLP モードで録画中にリアルタイムの綺麗な映像が見えるようにするためには、MPEG エンコーダが2つ必要なことになってしまいますね。さすがにそれはないよなぁ。気のせいか…。
さらに追記。「モスキートノイズが見えた」ように見えたのは目の錯覚だった模様。改めてよーく見てみたら全然そんなことなかった。砂嵐が普通と違うのもきっと GRT などのせいでしょう。大変失礼しました…。

献血

とても久しぶりの献血。400cc 抜きました。「水分補給して」と何度も言われたものだから、タダで飲めるジュースとお茶を飲み過ぎ、激しく水っぱらに。チョロQ付きボールペンをいただく。柊次にあげようっと。

birdPC 自作, 柊次の誕生日

PC 自作

ひさびさに妹のために PC を自作することに。1
とりあえず予算は 10 万以下で、3D 系はナシ、主な用途は publishing 系です。今のところ、CPU は Pentium4 2.60C、メモリを出来るだけたくさん積んで (1Gbytes)、HDD は 160Gbytes (Seagate Barracuda) 追加、後は静音に気をつかってあげるくらいで OK かなぁ、と思っています。
しかし最近の情報にはすっかり疎くなってしまって、マザーボードとかビデオボード、ケースや電源や CPU ファンについてはまるで見当も付かず。彼女のディスプレイは NANAO の 19inch なんですけど、今時アナログの画質が良いビデオボードってどれなんでしょ。
あ、そうだ、ブロードバンドルータもあった方がいいだろうなぁ…。
にんともかんとも。楽しいけどね。

柊次の誕生日

昨日は柊次の誕生日でした。もう5歳。早いもんです。
誕生日プレゼントはちょっと前から「ラジコン、ラジコン」と言い続けていたので、子供達と一緒に近所のイトーヨーカドーへ。ところがなぜかラジコンが全然おいておらず、そんな中父親 (僕) は目ざとく見つけた BITCHAR-G を強力に Push。しかし子供にとってはあの小ささはちっとも魅力的に映らないらしく、「もっと大きいのでなきゃヤダ!」と言う。「お父さんはこれがいいと思うけどナー」という父の言葉のむなしく、もう一つだけ置いてあったラジコン、仮面ライダー555 のジェットスライガーに決定。「商品入れ換えのため」半額近く値下げされてたので良しとしました。
安くなっていたのはちょうどテレビ放映が終わってしまうためなんですが、柊次に「もうすぐ 555 終わっちゃうんだよ」って言ったら、「だから買うんだよ」と言い返されて妙に感心してしまった。確かに来年の誕生日にはもう 555 グッズは手に入らなくなっているでしょう。家族で楽しんだ番組 (鈴鹿8耐も見たし、じじばばには変身ベルトも買ってもらったし、今年はずっと 555 だったね) が終わってしまうのは寂しいけど、しょうがない。このラジコンがあれば楽しいことも思い出せるよね。
このラジコン、対象年齢が6歳から、とちょっと柊次には早かったのですが、家に帰って実際に遊んでみてその理由がわかった。モーターが強力で、かなりのスピードが出ます。内蔵されてるニッカド電池も8分で使い切ってしまう。それでも柊次ならなんとかコントロールしてるんですけど (GT3、GT4 で鍛えられてるから?)、鳥乃がコントローラを持つと超危険!親の見ていないところでは遊ばないよう言わないと、家中穴だらけにされてしまいそう…。
メカ的に見ると、フロント、リアともステアリングとともに動くようになってて、横にスライドしたりその場でくるくる回転出来たりと結構面白い動きが出来るマシン。我が家の場合フローリングなのでちょっと路面μが低すぎてほとんどアイスバーン上で走ってる感じになっちゃうんですが、それはそれで結構楽しい。なんて言ってると僕が壁に穴を空けそうだ…。

bird

東京限定の話ですけど、かつての共通一次、今の大学入試センター試験日って、雪の特異日な気がする…。こんどちゃんと調べてみよ。

birdPostgreSQL チューニング, 今年の年賀状, ニュースステーション

PostgreSQL チューニング

あんまり IO が速くないマシンで、とにかく bulk insert の性能を稼ぐにはどうするか、というチューニング。
bulk insert のみ、という条件だとなんとなく shared_buffers や wal_buffers といったパラメータはあまり関係がないようで、wal_sync_method と checkpoint_segments あたりが肝な模様。いろいろと試行錯誤中です1。あ、もちろんデータファイル領域 ($PGDATA/base) とログ領域 ($PGDATA/pg_xlog) は異なる物理ディスク上に配置してあります。
wal_sync_method ですが、Linux 2.4 で普通の SCSI ディスクだと fsync と fdatasync がほとんど同じ、open_sync はそれの2倍くらい遅い、という感じのよう (open_datasync は使えませんでした)。確か PC Solaris だと open_datasync が一番速かったような気がするんだけど…2。 後者の checkpoint_segments について。Oracle なんかだと checkpoint 間隔があんまり短くなり過ぎないように調整するのがセオリーだけど、PostgreSQL で checkpoint_segments をデカくしてチェックポイント間隔を広げると、いざチェックポイントが発生した時にかなり長い間ロックアップ状態になってしまう。確かに単にスループットで比較すれば間隔を広げた方が良いんだけど、長時間アプリケーションが pause してしまうのは致命的な場合もあるよなぁ。この問題は普通どうやってチューニングするんだろう?
とかなんとかいろいろ調べている間に、PostgreSQL の ML にこんなメールが!つまり、bulk insert 中に他のテーブルをまとめて引き抜く (大量の sequential scan 発生) ような処理は 7.4 ではツライかもしれない、ってことか…。もう少しいろいろテストしてみよう。
そういや pgbench の initialize 時の tuple 生成の速度を調べたら、80000tuples/sec 以上の速度で insert 出来てるじゃん!…と思ってソースを読んでみたところ、単に insert してるわけじゃなくて copy コマンドを使っているのですね。この手をアプリケーションで使う、ってのはアリなのかな…。

今年の年賀状

2004年賀状 は、こんな感じでした。親が写っていない、いわゆる「嫌われる」年賀状ですが、コンセプト3のためにしょうがなかったのだ、ということにしておいてください。親ばかだ〜>俺。

ニュースステーション

今日は久々に真理さんいじめの珍味のコーナー (食の快楽) があった。森永さんと真理さんは何気にいいコンビだ…。

birdKernel 2.6 のメモリの使い方, 口の中の傷

Kernel 2.6 のメモリの使い方

Kernel 2.6、すごく快調です。使用中にメモリメータを見ていて気がついたのですが、2.6 はスワップをほとんど使いませんね。2.4 の頃はしばらく使っていると (それほどメモリに厳しいことをしなくても) 知らぬ間にスワップも使われていたんですが、2.6 では今のところ全くスワップを使いません。挙動も心なしかきびきびしている感じだし、なかなかいいなぁ、2.6。

口の中の傷

数日前の食事中に噛んでしまった唇の切り傷が案の定化膿してしまって、放っておいてもズキズキ痛い。口の中の傷ってどうして必ず痛くなっちゃうんだろう…。

birdPSX キークリック音の謎, フリスク ユーカリミント味, VMware 4.0.5 (Build:6050) の Kernel 2.6 対応

PSX キークリック音の謎

以前、「PSX リモコンのキークリック音が鳴ったり鳴らなかったりする」という話を書きましたが、なんとなく法則性が見えてきました。
PSX の操作画面は、バックにチューナの出力が見えている時と見えていない時があるのですが1、チューナの出力が見えている時 (その時放送されている TV の音声が流れている時) にはクリック音を出さない、ということのようです。
EPG (番組表) 画面のように「画面は見えないけれども音声だけ聞こえる」ような場合も、クリック音はなりません。そういう仕様だったのね…。

フリスク ユーカリミント味

僕は昔からお腹が弱いのかしょっちゅう下痢をするたちだったのですが、なぜかフリスクのユーカリミント味を一日1個〜2個食べていると非常にお腹の調子が良くなることに気がつきました。フリスクって整腸作用があるのかしら…。

VMware 4.0.5 (Build:6050) の Kernel 2.6 対応

こちらのページを参考に無事動かすことが出来ました。簡単に手順をまとめます。

Kernel 2.6 で起動した後、VMware をインストール (既にインストール済みの人は vmware-config.pl を実行) しようとすると、途中でエラーが発生し停止してしまいます。しかしとりあえずエラーが出るところまでインストール (または vmware-config.pl の実行) を行ってください。

:  
Do you accept? (yes/no) yes  
  
Thank you.  
  
grep: /proc/ksyms: No such file or directory  
grep: /proc/ksyms: No such file or directory  
grep: /proc/ksyms: No such file or directory  
Trying to find a suitable vmmon module for your running kernel.  
  
None of VMware Workstation's pre-built vmmon modules is suitable for your  
running kernel.  Do you want this program to try to build the vmmon module for  
your system (you need to have a C compiler installed on your system)? [yes]  
  
Using compiler "/usr/bin/gcc". Use environment variable CC to override.  
  
What is the location of the directory of C header files that match your running  
kernel? [/lib/modules/2.6.0/build/include]  
  
Extracting the sources of the vmmon module.  
  
Building the vmmon module.  
  
make: Entering directory `/tmp/vmware-config0/vmmon-only'  
make[1]: Entering directory `/tmp/vmware-config0/vmmon-only'  
make[2]: Entering directory `/tmp/vmware-config0/vmmon-only/driver-2.6.0'  
make[2]: Leaving directory `/tmp/vmware-config0/vmmon-only/driver-2.6.0'  
make[2]: Entering directory `/tmp/vmware-config0/vmmon-only/driver-2.6.0'  
..././linux/driver.c: In function `init_module':  
..././linux/driver.c:246: structure has no member named `prev'  
..././linux/driver.c:247: structure has no member named `next'  
make[2]: *** [driver.o] Error 1  
make[2]: Leaving directory `/tmp/vmware-config0/vmmon-only/driver-2.6.0'  
make[1]: *** [driver] Error 2  
make[1]: Leaving directory `/tmp/vmware-config0/vmmon-only'  
make: *** [auto-build] Error 2  
make: Leaving directory `/tmp/vmware-config0/vmmon-only'  
Unable to build the vmmon module.  
  
For more information on how to troubleshoot module-related problems, please  
visit our Web site at "http://www.vmware.com/download/modules/modules.html" and  
"http://www.vmware.com/support/reference/linux/prebuilt_modules_linux.html".  
  
Execution aborted.  

その後、上記ページで紹介されているパッチ (vmware-any-any-update48.tar.gz) を入手し展開、出来たディレクトリ中の runme.pl を実行します。

tpx20:~/var/vmware-any-any-update48# ./runme.pl  
Updating /usr/local/bin/vmware ... Unknown version  
Sorry, there is no binary patch available for your version of vmware.  
VMware modules in "/usr/local/lib/vmware/modules/source" has been updated.  
  
Before running VMware for the first time after update, you need to configure it  
for your running kernel by invoking the following command:  
"/usr/local/bin/vmware-config.pl". Do you want this script to invoke the command  
for you now? [yes]  
  
Making sure VMware Workstation's services are stopped.  
  
Stopping VMware services:  
   Virtual machine monitor                                             done  
   Bridged networking on /dev/vmnet0                                   done  
   DHCP server on /dev/vmnet8                                          done  
   NAT networking on /dev/vmnet8                                       done  
   Host-only networking on /dev/vmnet8                                 done  
   Virtual ethernet                                                    done  
  
grep: /proc/ksyms: No such file or directory  
grep: /proc/ksyms: No such file or directory  
grep: /proc/ksyms: No such file or directory  
Trying to find a suitable vmmon module for your running kernel.  
  
None of VMware Workstation's pre-built vmmon modules is suitable for your  
running kernel.  Do you want this program to try to build the vmmon module for  
your system (you need to have a C compiler installed on your system)? [yes]  
  
Using compiler "/usr/bin/gcc". Use environment variable CC to override.  
  
What is the location of the directory of C header files that match your running  
kernel? [/lib/modules/2.6.0/build/include]  
  
Extracting the sources of the vmmon module.  
  
Building the vmmon module.  
  
Building for VMware Workstation 4.0.x.  
Using 2.6.x kernel build system.  
make: Entering directory `/tmp/vmware-config1/vmmon-only'  
make -C /lib/modules/2.6.0/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules  
make[1]: Entering directory `/usr/src/kernel-source-2.6.0'  
  CHK     include/linux/version.h  
  HOSTCC  scripts/fixdep  
  HOSTCC  scripts/split-include  
  HOSTCC  scripts/conmakehash  
  HOSTCC  scripts/docproc  
  :  

すると何やら怒られはしますが、とりあえずさっきエラーが出たところは無事通過し、最後まで辿り着きます。これで、とりあえず VMware を再び使える状態になります。VMware 起動時に「カーネルが新しすぎるぞ」と怒られますが気にしない、気にしない。

たぶん次期バージョン (4.1?) では正式に Kernel 2.6 に対応してくれるでしょう。

First | Prev | 442 | 443 | 444 | 445 | 446 | Next | Last