雪
雪
東京限定の話ですけど、かつての共通一次、今の大学入試センター試験日って、雪の特異日な気がする…。こんどちゃんと調べてみよ。
東京限定の話ですけど、かつての共通一次、今の大学入試センター試験日って、雪の特異日な気がする…。こんどちゃんと調べてみよ。
あんまり 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 コマンドを使っているのですね。この手をアプリケーションで使う、ってのはアリなのかな…。
は、こんな感じでした。親が写っていない、いわゆる「嫌われる」年賀状ですが、コンセプト3のためにしょうがなかったのだ、ということにしておいてください。親ばかだ〜>俺。
今日は久々に真理さんいじめの珍味のコーナー (食の快楽) があった。森永さんと真理さんは何気にいいコンビだ…。
Kernel 2.6、すごく快調です。使用中にメモリメータを見ていて気がついたのですが、2.6 はスワップをほとんど使いませんね。2.4 の頃はしばらく使っていると (それほどメモリに厳しいことをしなくても) 知らぬ間にスワップも使われていたんですが、2.6 では今のところ全くスワップを使いません。挙動も心なしかきびきびしている感じだし、なかなかいいなぁ、2.6。
数日前の食事中に噛んでしまった唇の切り傷が案の定化膿してしまって、放っておいてもズキズキ痛い。口の中の傷ってどうして必ず痛くなっちゃうんだろう…。
以前、「PSX リモコンのキークリック音が鳴ったり鳴らなかったりする」という話を書きましたが、なんとなく法則性が見えてきました。
PSX の操作画面は、バックにチューナの出力が見えている時と見えていない時があるのですが1、チューナの出力が見えている時 (その時放送されている TV の音声が流れている時) にはクリック音を出さない、ということのようです。
EPG (番組表) 画面のように「画面は見えないけれども音声だけ聞こえる」ような場合も、クリック音はなりません。そういう仕様だったのね…。
僕は昔からお腹が弱いのかしょっちゅう下痢をするたちだったのですが、なぜかフリスクのユーカリミント味を一日1個〜2個食べていると非常にお腹の調子が良くなることに気がつきました。フリスクって整腸作用があるのかしら…。
こちらのページを参考に無事動かすことが出来ました。簡単に手順をまとめます。
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 に対応してくれるでしょう。
PC Watch の記事によると、先日の「Xbox を AV クライアントに」という話以外にも、各社からネットワークメディアプレイヤーと呼ばれるカテゴリの製品が出てきたようですね。
Microsoft の動きを見ていて思うのは、コンピュータの基礎の部分は既に「ある」ものとして、その上のサービスを至極まっとうに発想できている、ということです。対して日本の家電メーカを見れば、なんというかまだまだベース部分の構築に汲々としていて、なかなかさらに上位の概念の提案までたどりつけていないように見えます。
僕なんかはまぁその、MS がよりどころとしている基礎部分に文句付けたりしてるわけなんですが、なんにせよちゃんと上を見ている視線がある、というのは価値あることです。
ところで上記記事には、
今回東芝が公開したデジタルホームのデモは、デジタルホームのあるべき姿を示していると言える。日本の家電ベンダのデジタルホーム構想では、PCが無視されていたり、PCがつながらないという未来像を示しているものが多い。しかし、家庭におけるPCの普及率が70%を超える今、PCを無視したデジタルホーム構想は歪んでいる。PCとデジタル家電が相互に接続でき、コンテンツ保護も実現された形でメディアデータのやりとりができるという今回の東芝のデモは、誰にとっても受け入れやすいものではないだろうか。
という文章がありますが、PC の家庭における普及率が 70% という数字だけを受けて、上記の結論を導き出すのはかなり強引な気がします。その 70% のうち、どれほどの PC がホームサーバとして稼働可能な状態にあるのでしょうか?実はホームサーバとして稼働可能な PC の割合は意外に低いんじゃないか、というのが僕の感覚的な印象です。
それに、PC が家電メーカーのホームネットワーク構想から無視されるのは、その普及率であるとか技術上の問題ではなく政治的な問題でしょう。それが「歪んでいる」という見方ももちろん可能だとは思いますが、僕からみれば、現在の MS に支配された PC そのものの方がよっぽど政治的に歪んでるように思えます。家電的世界まで全て MS ワールドになっちゃって、なんだかよく分からないアプリケーションを使わせられる未来なんて気持ち悪くないすか?
Linux のようなオープンな基盤の上に、そこそこイケてるフレームワークが乗っかって、各社がその上のアプリケーションの機能や方向性でもって (フェアに) 競争する、みたいな未来の方がいいなぁ。基盤技術がオープンでないところの弊害はこの、フェアな競争が出来ないところにあるんだよな…。
自宅でメインに使っている Debian woody マシン (この Web サーバが動いているマシン) の kernel を 2.4.22-ck2 から 2.6.0 に変更してみました。もう 2.6.1 も出てますけどね…。
簡単に手順をまとめます。なお今回、kernel 2.6 に必要なその他もろもろのツール類をいちいち自分で調べて入れるのが面倒だったため、Debian backports を利用してインストールしてみました。
まず、次の行を /etc/apt/sources.lst に追加します。
#
# woody backports
#
deb http://www.backports.org/debian stable kernel-2.6 kernel-source-2.6.0
その後、とりあえず普通に「apt-get update」「apt-get upgrade」した後、「apt-get install kernel-source-2.6.0」を実行し、カーネルソースをインストールします (もちろん dselect 等を使って同等のことをしてもよし)。
さて次に、通常のカーネル再構築/インストール手順に従い、下記の通り実行します。
# cd /usr/src
# tar jxvf kernel-source-2.6.0.tar.bz2
# ln -s kernel-source-2.6.0 linux
# cd linux
# make menuconfig
# make-kpkg --revision tpx20.01 kernel_image
# cd ..
# dpkg -i kernel-image-2.6.0_tpx20.01_i386.deb
以上でカーネル入れ換えは完了です。このままリブートすることで新しい kernel 2.6 が利用できます。僕の環境ではごく普通に立ち上がり、今までと変わらず使うことが出来ました。1点、サウンドドライバを OSS から ALSA へ切り替えた関係で、/etc/modules の記述を変更する必要がありました。
[変更前]
# /etc/modules: kernel modules to load at boot time.
#
# This file should contain the names of kernel modules that are
# to be loaded at boot time, one per line. Comments begin with
# a `#', and everything on the line after them are ignored.
cs4281
ipchains
[変更後]
# /etc/modules: kernel modules to load at boot time.
#
# This file should contain the names of kernel modules that are
# to be loaded at boot time, one per line. Comments begin with
# a `#', and everything on the line after them are ignored.
snd-cs4281
snd-pcm-oss
snd-mixer-oss
ipchains
他にも、通常の kernel 2.4 からアップグレードした方は、X Server の nice 値を -10 から 0 へ変更した方が良いかもしれません (「dpkg-reconfigure xserver-common」で変更出来ます)。僕は以前、ck カーネルに切り替えた時に変更済みでした。
現在のところ分かっている不具合としては、VMware が起動出来ない点くらいです。vmware-config.pl をやり直してもカーネルモジュールの作成に失敗してしまうのですが、Google 先生に聞いてみたところ動かすための手はあるらしい。引き続き調査中。
さて、しばらく使ってみよう…。
サーバが止まってました。いかんいかん。ログを見ると今朝の 8:00 過ぎから今 (16:30 頃) まで止まっていたみたい。
しかし、なぜいきなり apache が消えるかなぁ…1。とりあえず cron で5分毎にチェックすることで対処。バータリーだ…。
を見ていたら、なんとあの新しいキャラメルコーンのかわいいパッケージは中田英寿がデザインしたとの情報が!
有名な話なのでしょーか?結構びっくりした…。
ググッてみたところ、1) かなり有名な話らしい、2) 直接デザインしたわけではなくて、デザインチームにいくつかアイディアを出した、という話らしい。
ふむー。知らなかった…。
kakaku.com の掲示板を見ていて知ったのですが、巷には普通より薄い DVD もどきというようなものが存在するようで (例えばコレ?)、おまけ DVD などの分野に利用されているらしい。やっかいなことに、こういった薄いディスクを PSX に入れると出てこなくなることがあるらしい。
知らなかった…。気をつけねば。
アイコンファイルを用意してみました。ico ファイルって、はるか昔の記憶 (Windows 3.1 時代?・笑) では実体は BMP ファイルだったと思ってたんですが、favicon.ico ファイルに関しては GIF ファイルなどでも良いのですね。知らなかった…。
今日は初めて知ったことばっかりだ。
僕は昨日 (Ruby 作者の) Matz さん日記で初めて知ったのですが、ITmedia の新人記者、岡田有花さんをご存じですか?(特徴的な記事、その1、その2)。サイコーです。これからも頑張って欲しいなぁ。
今開催中の CES に関する報道がたくさん。いろいろと思うところはありますが、まとめて書くだけの時間がないので思い出したらポツポツ書きます。それにしてもいまさら Hi-MD はないよなぁ…。
深夜で放送していた映画版をいまさら見ました。なるほど、これは売れそうもない(笑。脚本がシケシケ、役者が大根。同じアニメーションでも他のモノではそれほど「演技ヘタ〜」って感じはしないのに、あの映画であれほどヘッタくそだなぁと感じてしまうのは何でだろう。なまじリアルなだけに細かなディテールがより気になってしまうから?レンダリングが大変で細かいタイミングの調整などが難しかった?
壮大な星の描写とか出て来る乗り物なんかは結構面白かったのに、残念。
今回の CES で Microsoft がより洗練させてきた Media Center PC。でも、僕は「どうして PC なの?」って思う。今の PC は無駄が多すぎるし、効率も悪すぎる。より特殊化されたモデルが必要なんだと思うけど、Microsoft の立場ではコントロールが難しそう。どれだけうまくやるのか注目したいです。
そういや、Xbox が Sony の RoomLink や Vertex Link の MediaWiz、IO データの LinkPlayer のようなものになるというのは面白い。Xbox にとってはかなりの新しい付加価値なのではないかと思います。
対する Sony は LocationFree というコンセプトを打ち出してきました。これまでも VAIO Media という形では実現されていたわけですけれども、対象を VAIO だけでなく専用デバイスにまで広げよう、という動きがようやく始まった、ということでしょうか。Sony は社内の部署間の連携がとんでもなく悪いからな〜。
Microsoft の Media Center PC、Sony の LocationFree、どちらについても肝となるのは「ストレージ仮想化」なのではないかと考えています。
Media Center PC について言えば、「PC」という名前はついていますが、Personal Tool としての一般的な PC とはまったく異質の存在であり、どちらかというと家庭におけるコントロールとストレージの中心になろうとしてしているもの、LocationFree も何らかのストレージ (現在のところ VAIO) が家庭に存在することを前提としたものです。どちらも「ストレージ」が中心に存在します。
その「ストレージ」が、いつまでも「単なる HDD のデカい PC」とか「ホームサーバ」というような、「単一の機器」だと考えられているのはおかしいと思うのです。家庭内のデータが集約されればされるほど、その機器の堅牢性、信頼性への要求は高まり、比較的すぐ、単一の機器ではその要求される信頼性をまかなえなくなってしまうでしょう1。ストレージが偏在している環境、それらを統一的に扱うことが出来、データそのものはその環境で可能な限り力強く生き続けられるような仕組みが必要だと思うのです2。
そういう意味で、Apple の、iPod を単なる音楽貯蔵庫としてではなく、個人的なデータは全てそこに格納していく「パーソナルストレージ」とでも言えるような存在としていこうという流れにはとても賢明なものを感じます。Macintosh、iPod と偏在するストレージをスマートな形で (そのストレージの性格に逆らわずに) 自然に統合していこうという流れのように見えるからです。
携帯プレーヤでは「HDD なし、光ディスクあり」にこだわり、据え置きプレーヤでは「HDD あり、光ディスクなし」にこだわった Sony。後者は去年反省してスゴ録、PSX という製品を作ったわけですが、前者はまだ失敗だと思っていないのでしょうか。きっと iPod を使っている社員だってすごくたくさんいるだろうに、どうしてビジネス上のどうでもいい要請からではない、自分達の体験、身体感覚に基づいた企画が出来ないのだろう…。
本質的に、携帯型機器ではリムーバブル・メディアは使いづらいのです (どうしても散らかるので)。「ストレージ」というものがなくデータを細切れに管理するしか無かった時代は、携帯型機器でもリムーバブル・メディアを使うしかなかったわけですけれども、iPod のようなものや、PC、PSX のようなものがごく普通に存在するようになった現在、携帯型機器でリムーバブル・メディアを日常的に使わなければいけない理由はほとんどなくなっているのではないかと僕は思います3。
今朝方 6:30 頃から 7:30 頃までこのサーバ停止してました。ちょっと前にデスクトップ向けにチューニングされていると言われている ck カーネルに入れ替えてから、ふとしたタイミングで固まっていることがときどきあります。やっぱり少し不安定なのかな。
そういえば僕は XFS を利用しているんですが、例の「異常終了した時にファイルが0で埋めつくされる」というバグがこの間久しぶりに発生、よりにもよって VMware の仮想ディスクを一つ壊してくれました…(;_;。
いろんな報道を見ていたら、どうもこの Macworld は「Macintosh 20周年の始まり」ということなんですね。ジョブズ曰く「いろいろ計画している」ということで、今後の展開に期待しましょう。
僕のカメラ入力 UI 熱が高まっているのは、間違いなく EyeToy の影響です。EyeToy のカメラってごく普通の USB カメラに見えますが、かつての安藤さんの日記やこちらにも書かれているように、取り込まれた各画素について、色情報だけでなく奥行き情報、つまりカメラ面からの距離情報も取得できるようになっているのだそうです。そのせいか、TOKYO GAME SHOW の会場のように光ノイズの多い場所でも何の問題もなくプレイすることが出来ました。
画素あたりの Z 座標が取れるとすると、例えば動く人間の手を認識することなども比較的容易に出来ます1。だとすれば後は、既に実現されているマウスジェスチャー程度のロジックでジェスチャー認識させることも可能なのではないでしょうか。
これであの腹立たしい家電のリモコン達2が駆逐されたりしてくれると嬉しいなぁ。
そうなのでした…。1結論から言うと、こと読み取りに関するアクセス制御はたとえ apache を経由していたとしてもあまり自由度が高くないのでした。
当初僕は、次のようなことをすれば単一のリポジトリ内でもディレクトリ別にアクセス制御をかけることが可能なのではないかと考えていました。2
# リポジトリのトップ
<Location /svn/repos>
DAV svn
SVNPath /opt/repos
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile conf/svnpasswd
Require user admin
# 少数の管理者のみ含む
</Location>
<Location /svn/repos/project1>
Require user admin project1-user ...
</Location>
実際に上のような設定をしてみるとすぐにわかりますが、これではうまく動きませんでした。subversion ではリポジトリ内ディレクトリに対応した path の他に、リポジトリトップ直下の SVNSpecialURL ディレクティブで指定されたディレクトリ (デフォルトでは「!svn」) にも頻繁にアクセスするからです。
そこで、設定を次のように変更してみました。
# リポジトリのトップ
<Location /svn/repos>
DAV svn
SVNPath /opt/repos
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile conf/svnpasswd
Require user admin
# 少数の管理者のみ含む
</Location>
<Location /svn/repos/project1>
Require user admin project1-user ...
</Location>
# SVNSpecialURL は全員がアクセス可能にする。
<Location /svn/repos/!svn>
Require valid-user
</Location>
上記のように設定することで、svn コマンドや Windows 上の TortoiseSVN などのクライアントプログラムを用いる限り、ユーザ毎に特定のディレクトリ以下しか閲覧すらできないようにすることが出来るように見えます (一番最初に必ず発行される PROPFIND が失敗するため)。
しかし、subversion クライアントが apache サーバにアクセスするパターンを access_log などでよーく観察すると、特に一番最初に working tree を checkout する際、実際にデータを引き出しているのは SVNSpecialURL 以下へのアクセスであることがわかります。
そこで、正規のクライアントではなく直接 HTTP により checkout 処理に相当するコマンドを apache に与えてみると、本来あるユーザには許可されていないディレクトリ以下のデータも全て取得可能であることがわかりました。
結局、読み取りに関してはリポジトリ単位にしかアクセス制御出来ないのでした。残念!なお、commit 可否については (Limit ディレクティブや hook-script を用いることで) もう少し柔軟に制御出来るようです。為念。
それにしてもこうのさん、働き過ぎですよ!お身体には気をつけて〜。
面白かった!VSL (光速度変動) 理論が納得出来る、という種類の本ではありませんが、アインシュタインを否定するようなとんでもないアイディアを思いついてしまった若い科学者が、いろいろなことに巻き込まれながらも1つのムーブメントを作り出すさまがとても生き生きと書かれています。若さゆえかあまりにもズケズケといろんなことが書いてあるので、そういうのが気になってしまう人はちと読みにくいかも。僕はとても楽しく読めました。
作者のジョアオ・マゲイジョさんはなんと僕と4歳しか違わないんですよねぇ…。僕ももっと脳味噌を回転させねば、と思った次第。
結局、20周年らしいところと言えばあの「1984」をリメイクしたことくらいでしたねぇ (しかもほとんどリメイクの意味がないような…)。iPod mini も噂通りだったし (予想よりも高価だったみたいですが)、あまり目新しいもののない Macworld なようです。10年に一度くらいはみんながびっくりするようなとんでもないマシンを作ってくれてもいいのにね。
しかしよく考えてみると、今「みんながびっくりするようなとんでもないマシン」ってどんなものでしょ?こないだの激薄 VAIO、505EXTREME はそこそこびっくりしましたが、10年に一度のイベントならばあんなレベルで満足してちゃダメだよな。
MYCOM PC WEB のインタビューによると、今年は「ウェアラブル PC を普及させる年」らしいので、そちら系だとどうだろう。これまでにない高精細 HMD と革新的な入力デバイス3、どこでもコネクティビティを備えたウェアラブル Mac を作って出したら結構面白い?
既存の発想から抜け切れてないって?ごもっとも…。