7/31 (日)
[Java] Java プログラムのデッドロック問題の備忘録
J2SE5.0 の java.util.concurrent を無視すると Java のデッドロックは次の 2 種類の原因によって起きる。
1. ネストしたモニタによりデッドロック
二つ以上のスレッドが互い違いに Java モニタをロックし合った状態でブロックされると デッドロック状態になる。 下のプログラムの場合 Thread1 と Thread2 が「ここで止まる」の位置に同時に入ると、 Thread1 は monitor2 を Thread2 は monitor1 を永遠に獲得することができず デッドロック状態となる。
Thread1
synchronized(monitor1) { // Thread1 がここで止まる synchronized(monitor2) { } } |
Thread2
synchronized(monitor2) { // Thread2 がここで止まる。 synchronized(monitor1) { } } |
デッドロックが起きるのは、 スレッドによって Java モニタをロックする順序が逆転してしまうことが原因。
2. モニタの wait/notify によるロックアウト
もう一つの原因は wait/notify によるロックアウトの問題。
Object.wait()
は待機状態になる瞬間に、
ロックしていた Java モニタを解除する。
Thread1 は monitor1 → monitor2 とロックをかけるが、
monitor1.wait()
が実行されると monitor1 が外れ monitor2 だけの状態になる。
この状態で Thread2 が動作を始めると、 最初の monitor1 のロックを取得し、 2行目の monitor2 のロックに失敗してブロックしてしまう。 Thread2 によって monitor1 がロックされているので、 他のスレッドも monitor1 に notify を送ることができなくなる。
wait なので Thread1 に対して Thread.interrupt()
を発行することはできるが、
Thread1 が monitor1 のロックが取得できるまでは割り込みが効かない。
これは事実上のデッドロック状態となる。
Thread1
synchronized(monitor1) { synchronized(monitor2) { monitor1.wait(); } } |
Thread2
synchronized(monitor1) { synchronized(monitor2) { monitor1.notify(); } } |
Java モニタのロック順序を守っていてもロックアウトは起きる。 これを防ぐには wait をかけるオブジェクトは、 一番最後にロックを書けたJava モニタのみにするというルールを守ればよいのだが、 J2SE のライブラリのソースを見ても入れ子のロックの外側を wait する箇所があり 現実には厳しいようだ。
IBM developerWorks の この記事 などは、 wait を実行する前に Java モニタをロックを掛けたのと逆の順序で解放すればよいなどと主張している。 実現のためには言語仕様や Java 仮想マシンの仕様の変更が必要なので難しい。
7/30 (土)
[Food] すみれ@池袋東武百貨店
7/19 の日記 に紹介した、 池袋東武百貨店内に開店した札幌ラーメンの「すみれ」に行ってきた。 昼過ぎに到着するとすでに行列ができており、 30分待ちぐらい。
ひさしぶりに味噌ラーメンを食す。 うま〜。
本日見つけたインテリア
武蔵小杉の雑貨店の前に飾ってあった針金細工のインテリア。 写真では分かり辛いが、 水力で先っちょのギミックがグルグル廻っている。
7/27 (水)
[CPU] Niagara プロセッサの新情報 (MYCOM PC WEB)
SUN の CMT(Chip Multi-Threading) プロセッサ Niagara のプレスセミナーが開催。 Niagara は 1チップあたり 8 コアの Chip-Multi-Processor で、 それぞれのコアが SoEMT (Switch on Event Multithreading) で 4 スレッド可能。 すでに試験機で Solaris が動作するところまできているようだ。 製品出荷は2006年初頭の予定。
問題はこのマシンの適用範囲がどこまであるか。 Web サーバーにはいいかもしれない。 シングルスレッド性能は端から捨てているので、Oralce を動かすような DB マシンにはなれない。 キャッシュが少ないので HPC 用途も難しい。 Java を動かすようなアプリケーションサーバマシンとして使えるかどうかが鍵か。。。
[Tips] Red Hat Enterprise Linux 4 で less の日本語表示
RHEL4 で日本語は ja_JP.UTF-8
が基準のようで、
jp_JP.eucJP
環境のマシンの kterm から RHEL4 マシンにログインして
less を使うと日本語の表示が化け化けになる。
とりあえず LESSCHARSET 環境変数を iso8859
を指定すると問題が回避できるようだ。
なぜだかよく分からん。
[Compiler] x86 の GCC 3.4 系の問題
GCC の拡張インラインアセンブリを含んだコードを
GCC v3.4.3 for x86 で -fPIC
オプションを付けてコンパイルする時、
ebx レジスタを使用しているとエラーが出力される。
例えば下のようなコードをコンパイルすると
error: PIC register `%ebx' clobbered in `asm'
というエラーになる。
void foo(int arg0, int arg1) { __asm__ volatile ("pushl %%ebx" "movl %1, %0" "popl %%ebx" : "=r" (arg0) : "r" (arg1) : "%ebx"); }
原因不明。摩訶不思議。落書無用。
7/26 (火)
[時事] 台風7号が接近中
台風が接近のため昨日に続き大雨。
今日は定時に退勤する。
[Java] IBM Java Developer Kits の 5.0 の予定
Sun と BEA からは J2SE 5.0 互換の JRE/JDK が公開されているが IBM からはまだ。
モノとしては存在しているという噂は聞くが、
正式な公開は
It is likely that the IBM 5.0 Developer Kits will become available during the fourth quarter of 2005.
(IBM) と
第4四半期になりそう。
7/25 (月)
帰宅中に土砂降り
夜の9時半。
会社から帰宅中に土砂降りにあう。
服・靴のみならず、背負い袋の中の書類にダメージを受ける。
換金前の Google の小切手が...
7/24 (日)
期せずして吉祥寺散策
相模湖に住んでいる Aze 氏と吉祥寺で落ち合う約束をする。 Aze 氏は近々 今いるアパートを近々引き払って、 中央線沿いに引越しをするかもしれないというので一緒に下調べをする予定だった。 しかし約束の11時直前に、風邪を引いたから行けないという連絡が入る。 こっちは吉祥寺にとっくに到着しているのに...
しょうがないので吉祥寺の街をブラブラ散策する。
大学1・2年の頃は三鷹に住んでいたので最寄駅は吉祥寺だった。
通りを歩いていると郷愁にかられる。
お店は少しづつ入れ替わっているが、
馴染みの店は今も同じ位置にあったよ。
マンガの森とか...
[Food] トルコ料理 パムッカレ(Pamukkale) (ぐるなび、livedoorグルメ)
吉祥寺にあるトルコ料理の店でお昼を食べる。
実は三鷹に住んでいる頃には、この店には来た事がない
(階下にあるインド料理のサラムートには結構行ったが)。
ドネルケバブランチを注文。
チーズが入ったトマトスープが大変に美味。
写真を撮り忘れたが、この後でチャイがつく。
[Food] 一風堂 (公式)
夕飯。
7/23 (土)
[Food] ゆうき亭@元住吉 (Gourmet)
久しぶりにゆうき亭で昼飯を食べる。
[時事] 地震キター
4時35分頃、グラグラと地震が来る。
TV を付けると地震速報。
都内の足立区や横浜では震度5がきたらしい。
しばらくしてから実家からも電話が掛かってくる。
携帯電話は混線状態だったようで、余計に心配された。
7/22 (金)
[CPU] Intel の新追加命令は Foxton? Rockton? (EETimes、Geek.com、Inquirer)
来月開催される Hot Chips 17 で Intel が新技術を披露するようだ。
Willamette 追加命令・NX 命令に続き、
Foxton と呼ばれる新しい命令が追加される。
詳細は不明だが CPU 側の省電力機能をソフト側で細かく制御することで、
パフォーマンスを稼ぐという。
あと Magpie と呼ばれる パフォーマンスモニターのための新しいメカニズムが入るようだ。
[Work] Linux 入れ替え
会社の 4-way Xeon MP サーバーの OS を、 Red Hat Enterprise Linux AS 2.1 から AS 4 Update1 へ順次インストールし直す。 今後、カーネル 2.4 系 → 2.6 系のスレッドスケジュール周りの試験を行う。
7/19 (火)
7/18 (月)
[Movie] 姑獲鳥の夏 (公式)
「予告編はとても面白そうだった(@かってに改蔵)」ので 川崎チネチッタ で鑑賞。 劇場は三日目というのに席はかなり空いていました。
感想としてはかなりダメ映画。
- 脚本は原作をがんばってコンパクト化しているとは思うが、 さらに減らしたほうがよいと思った。 設定をセリフでしゃべらなくてもいいぐらいに シュリンクすべきだと思う。
- 映画というよりは TV ドラマのような映像。 人物はひたすらアップで撮るし、斜めのアングル使いすぎ。
- 頻繁に鳴るピュンピュンなる効果音がうるさい。 音楽も数曲しかない楽曲をいろんな場面で使いまわしているようでミスマッチ。
劇の途中で席を立つ人が結構いました...
最近読んだ本
映画を見る前の予習がてらに、 京極夏彦の妖怪シリーズを読んでみた。
- 姑獲鳥の夏 上 下 (京極夏彦著、講談社 別冊文庫版)
-
今回 映画化された作品。
前半にワトソン役である関口が 「妊娠20ヶ月」・「カエルのような顔の赤ん坊」等 事件の中心となる怪奇的なギミックを体験するが、 後半 ホームズ役である京極堂が 合理的な説明を加えて事件を解き明かしていくというスタイル。
個人的にはこの本の面白さの過半は、 作者が京極堂の口を借りて語る薀蓄になると思っている。 エラリー・クインも衒学的な探偵だったが、 こちらはそれをはるかに上回り 全ページの半分ぐらいが薀蓄である。
ミステリーとしてみると色々と難があると思う。 何が問題なのだろうと考えてみたが、 推理するに足る情報が読者に提供されていない上に、 容疑者である久遠寺家の人々が 多重人格や心神喪失や奇妙な強迫観念を持っており、 読者の側からは人物の心理を追うことができない点が問題だろう。
(購入日:7/12) - 魍魎の匣 上 中 下 (京極夏彦著、講談社 別冊文庫版)
-
(購入日:7/13)
- 狂骨の夢 (京極夏彦著、講談社 文庫版)
-
(購入日:7/15)
- 鉄鼠の檻 (京極夏彦著、講談社 文庫版)
-
(購入日:7/16)
- 絡新婦の理 (京極夏彦著、講談社 文庫版)
-
(購入日:7/17)
- 塗仏の宴 宴の支度 宴の始末 (京極夏彦著、講談社 文庫版)
-
(購入日:7/17)
全然、関係ないが 2ch で拾ったこの AA が好き。
| ホウ / ,____ /〃/ハ)ヽヽ\ ミッシリ /;;;;;リハ’A‘ノゝ;;;;\ | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| |________|
7/16 (土)
[Food] LA VERDE (ラ・ベルデ) 有楽町店 (livedoorグルメ)
有楽町の最終日。
撤収後、同僚6人でイタリア料理店ラ・ベルデへ。
ラ・ベルデの他の店舗には 3/6 にも行ったが、
有楽町店に入るのは久しぶり。
7/15 (金)
[Work] PRIMEQUEST (公式)
富士通フォーラム2005で撮影した富士通の IA-64 サーバー PRIMEQUEST の写真。
筐体はでっかいがメインボードは2枚しか刺さっていない。
PRIMEQUEST はソフト面が弱いよなぁ。
ハードの信頼性を高めても自社製 OS がないから、
その機能をサポートする OS をすぐには準備できないのは足を引っ張ると思うよ。
動的 PPAR を使うためには RHEL5/SLES10/Longhorn を待つ必要がある。
同じ日本メーカーでも NEC や日立は HP から HP-UX 11i for IA-64 のライセンス供与を受けているし、
NEC は ACOS-4 を独自開発をしている。
富士通も Solaris10 を IA-64 に移植してみればいいのに...
7/14 (木)
[Compiler][CPU] Intel コンパイラのコードは AMD チップを意図的に妨害
AMD が Intel に対して起こした訴訟の訴状の中に、 「Intel コンパイラが生成したコードは CPUID を見て Authentic AMD であればデグレードしたコードや意図的にクラッシュするコードに分岐する」という 条項があったようだ。
関連した URL をあげると、
- 元になった AMD の訴状 (関連するのは 122項か 126項まで)
- slashdot: AMD Alleges Intel Compilers Create Slower AMD Code
- ITmedia: 「Intelは当社プロセッサ上でのコンパイラ動作を妨害」とAMD主張
- The Register: AMD alleges Intel compilers create crash code for its chips
- AMD64 devSource: Your Processor, Your Compiler, and You: The Cas of the Secret CPUID String
2番目の slashdot のリンク先の記事には、 非インテルプロセッサで速度が落ちる例が 2つ投稿されている。 ただしクラッシュするコード例は見当たらない。
メモリ転送関数 Memcpy (Eponymous Cowboy 氏のコメント)
ICC 8.0 は memcpy
をインライン展開できる時はインライン展開し、
駄目な場合は Intel の専用ライブラリの memcpy を呼び出す。
しかし
この専用ライブラリの memcpy は実行時にプロセッサの判定を行っていて、
非 Intel プロセッサで実行された場合は brain-dead なコードを実行してしまうようだ。
具体的には
非 Intel プロセッサで実行した場合
(i386 generic な) 4 バイト単位での転送命令である res movsd
ではなく
1 バイト単位で転送を行う res movsb
を使ったものが実行される。
大きなメモリ転送を行うと性能の低下が確認できる。
Intel processor-specific オプション (spworley 氏のコメント)
ICC 8.0 にはプロセッサに特化したバイナリを生成するオプション
-x?
/-ax?
(Linux)、
-Qx?
/-Qax?
(Windows) がある
(?
の部分には KWNBP のような文字が入る)。
K -- Intel Pentium III processors and compatible Intel processors
W -- Intel Pentium 4 processors and compatible Intel processors
N -- Intel Pentium 4 processors and compatible Intel processors. Enables new optimizations in addition to Intel processor-specific optimizations.
B -- Intel Pentium M processors and compatible Intel processors. Enables new optimizations in addition to Intel processor-specific optimizations. P -- Intel Pentium 4 Processors with Streaming SIMD Extensions 3 (SSE3) instruction support. Enables new optimizations in addition to Intel processor-specific optimizations.
このうち後ろの 3 つは Pentium4 または Pentium M 専用のオプションで、 それ以外のプロセッサで実行しようとした場合 起動チェックが入って警告メッセージを出して停止してしまう。
spworley 氏のコメントでは、 -QxN で SPEC CPU2000 の 181.mcf をコンパイラした場合 -QxW に対して 22% 程度の速度向上があるが (P4 EE 3.2GHz で実行)。 しかし -QxN オプションは本質的に Intel processor-specific なバイナリを生成するわけではなく、 チェックルーチンを飛ばせば AMD チップでも実行可能になり、 その場合 AMD FX51 でも 22% の速度向上が得られたということ。
雑感
AMD は他にもっと決定的な証拠を持っていると思うが、 memcpy と Intel processor-specific オプションだけでは Intel との訴訟に勝つのは難しいと思う。
Intel の立場に立てば、 Intel processor-specific オプションは 「Intel 以外のプロセッサでは性能が劣化したりクラッシュしたりする危険な最適化を使っているため」と言い訳できる。 -aN を付けて Intel チップでは性能が上がるが、AMD チップでは性能が落ちるコードを例示できれば、 Intel の勝ちだろう。
memcpy
関数も、
res movsb
は端数の処理が不要なため
res movsd
よりも高速になるケースがある。
参考: memcpy の実験
Linux/IA-32 用だけど memcpy を使った テストプログラム を作ってみた。
転送サイズ (KB) と繰り返し回数を指定して実行する。
> time memcpy-test.xcc.exe size repeat
size=512、repeat=100000 で実行すると、 Xeon 3.4GHz (L3:1MB) 上では gcc が 8.9 秒、icc が 5.8 秒となる。 一方、 Opteron 850 (2.4GHz / L2:1MB) 上では gcc が 39.5 秒、icc が 66.0 秒と確かに逆転している。
追記:7/15
Mark Mackey 氏の Intel's compiler: is crippling the competition acceptable? の記事には オプションと auto dispatch コードの関係が詳細にまとまっている。
7/12 (火)
[Food] タイカレーの昼とタイスキの夜
出張で有楽町までデバってきたので、 ビックカメラ有楽町店の6Fに入っている コカレストラン で昼飯を食べる。 日替わりタイカレー。
夕刻。 作業が終了後、 部長を含む同僚5人でタイスキ。
7/11 (月)
[C++][Lang] Bjarne Stroustrup が次期 C++ 言語の標準案を考え出した (Stroustrup のエッセイ(PDF形式)、/.)
C++ が ISO 標準となったのもついこの間のことのように思えるが、 Bjarne Stroustrup は次期 C++ 言語の標準 C++ 0x を 考え始めたようだ。 とはいえ上の PDF は、 漠然とした方針を示しただけで、 具体的な機能については何も語っていない。
一方 slashdot の反応を見ると、 もうお腹いっぱいとか、 いい加減 C++ はリタイアしてくれ、 という意見が多いようね。
[Trivia] 満屋裕明教授と抗エイズ薬
熊本大の満屋裕明教授が副作用がほとんどなく、 従来の薬が効かなくなった人にも効果の高いエイズ新型薬を開発したとのこと。
同教授によると、コードネーム「AK602」というこの新薬は、細胞の表面にあるCCR5というたんぱく質にくっつく。このたんぱく質は、HIVが人間の細胞に入り込む入り口。ここに異物がくっつくことで、ウイルスは細胞に入れなくなる。
米国のエイズ患者計40人を対象に臨床試験を実施。1日2回、1回600ミリグラムを10日間のんだ結果、ウイルス量が平均約100分の1に減り、600分の1まで減った患者もいた。副作用は、便が軟らかくなった人がいた程度だった。
AK602は、CCR5の全体ではなく、HIVの入り口部分を選んでふさぎ、人間にとって必要な働きをする部分はあまりふさがない。さらに、従来の薬がウイルスを攻撃するタイプなのに対し、新型薬は人間の細胞に反応する。このため副作用が出にくいという。また、今回対象にした40人のほぼ半数は、薬のほとんどが効かなくなった多剤耐性エイズの患者で、この人たちにも大きな効果を示したことになる。
エイズ新薬開発、体内ウイルス「激減」 熊本大教授 (asashi.com 2005/07/06 06:10)
記事のタイトルには「熊本大教授」とあるが、 世界的には「満屋裕明」の方が通りがよいと思われる。 満屋氏は世界最初から3番目までのエイズ治療薬の発見者なのだから。
ところでエイズの治療薬等には WTO ドーハ宣言 (エイズのような危機的な病気に対する治療は国際特許ルールよりも優先するとして、 途上国がコピー薬の国内生産・輸入を認めるとした宣言) 以来、 特許の扱いに関して色々もめている。 しかし満屋氏が発見した世界初のエイズ治療薬 AZT(アジドチミジン) には、 それとは別種の特許問題が発生している。
AZT は 1964年に NIH の支援をうけたジェローム・ホロビッツ (Jerome Horowitz) 教授が癌の治療薬として開発したが毒性が強くて実用に至らなかった。 AZT は英国籍の製薬会社 Burroughs-Wellcome 社 (現 GlaxoSmithKline社) に権利が買い取られペットの猫の治療薬に使われることになった。
その後 1984年に HIV ウィルスが発見されると、 NIH は手持ちの薬のうち抗ウィルス作用のありそうなものを 虱潰しに試して見ることになり AZT も治験の対象になった。 NIH は AZT の現在の所有者である BW 社にの実験を依頼するが、 BW社はエイズ実験の危険性をおそれてこれを拒否する。 そこで当時 NIH に所属していた満屋氏が AZT 実験の担当となり、 エイズに対する治療効果を確認する治験を行うことになった。 で、これが成功する。
ところが BW 社は NIH は報告を受けて 同年内 1985年にイギリスでエイズ治療薬として AZT を特許申請してしまう。 BW 社は AZT のエイズに対する効果の確認に寄与していないわけで、 そもそも特許を出す権利があるのか疑問となる。 エイズ治療薬のコピー薬の問題も絡んで、 市民団体から特許取り消し訴訟なども起きて てんやわんやの状態なり。
参考
- Burroughs Wellcome lies about their role in the development of AZT (New York Times の記事のコピー)
- エイズ治療薬と特許権 (新條綺羅氏)
- 2005.06.29 ブラジル政府が抗エイズ薬のコピーを推進 (極東ブログ)
7/9 (土)
[Movie] STARWARS Episode III Revenge of the Sith (公式)
川崎チネチッタで「シスの復讐」を鑑賞。 17:30 からの部を鑑賞したが、 先々行・先行とやりすぎたためか 初日にも関わらず劇場は満員にならず。
感想。
- 銀河帝国誕生シーンにはやはり感動。 銀河共和国から銀河帝国が誕生したという筋書きは S.F. ではおなじみのものだが、 映画の中でやったのは初めて?
- Ep.4 に繋げるためか、シナリオにはいろいろ無理が来ているよう感じる。 最初のパルパテーン議長の誘拐は茶番なわけだが、 アナキンとオビ=ワンの荒っぽい脱出劇の中で、 パルパテーンが死んだらどうするつもりだったんだろう。
- 今のヨーダの雄姿を見ていると、 この先 惑星ダコバで暮らすうちに野生化してしまうのが哀れでならない。
P.S.
サンスポニュースによると
日本では先々行 (6月25日)、先行(今月2日) 上映が行われ、興収8億2062万円、57万5563人動員と先々行・先行記録の1位を獲得している。
そうだ。
追記:7/13
最後のスタッフロールを見ていると「AMD Athlon64」のロゴがあったよ。
疑問:7/14
ダース・シディアスの師匠ダース・プレイガスはいったい何歳なんだ?
Episode I でヨーダが「シスはもう1000年もあらわれていない」と言ったが、
Episode III のヨーダはダース・プレイガスに言及している。
ジェダイがダース・プレイガスのことを知ったのは1000年以上前なんだよな?
[Food] カジュアルタイ料理 トゥク トゥク タイ (チッタデッラ、ぐるなび)
食後はチネチッタ内のカジュアルタイ料理屋へ。
7/8 (金)
[Work] ようやくひとだんらく
来週の木・金に東京国際フォーラムで開かれる某イベントに展示予定のデモ機の仕込みが一応の「終結」をみた。
とにかくサーバーを搭載したハーフラックが搬出されてしまったので、
「完了」していなくても「終結」とせざるえない。
# 自分の分担としては「完了」している。もっともデモ機の上に載せるアプリの作成しかしていないけど。
○○○はこの一ヶ月ぐらいでソフトウェアのバグはかなり解消した。 だが自家製ブレードサーバのハードウェアが原因の障害はとり切れていない。 電源ラインのノイズ が原因で障害が発生するようなので、 デモ部隊の人は月曜日に専用のテスターを持って東京国際フォーラムの電源波形を見に行くそうな。 正弦波を描いていることを祈ります。
うちの会社でもそれで何度食らったことか、、、、CTを動かしていたらズドーンとか、電源工事の会社が100Vのところに200Vを引いてくれてUPSおじゃんにしたりとか、、、、
東京国際フォーラムの電源は酷いそうですで、ほげほげなことになりそうです。
電源の波形はともかく、電圧が 101V ぐらいあったのがよかった原因かもと話あっています(実験室は99V)。
7/7 (木)
[Bench] TPC-C ベンチマークとストレージ
TPC は 2006 年に TPC-C ベンチマーク をお払い箱にして 新しく TPC-E をリリースする (5/17)。 TPC-C よ早く死んでくれと怨みつらみを述べたい人も多いだろう。
TPC-C ベンチマークの最大の問題点は、バカみたいにでっかいストレージシステムが必要なこと。 TPC-C を走らせるだけの最小限の構成であれば 10GB もあればお釣りがくる。 だけどスコアを狙っているメーカーは、 何千本という HDD を束ねて メモリ並みの速度で読み書きできるストレージシステムを準備する。
- 現在 TpmC 最高の IBM のシステムは
36GB HDD を 6,400 本 (計243,236GB) 使って計測している。
ストレージだけで19インチラックが45本立つ。 - 現在 4 位の HP のシステムは 各容量いろいろ取り混ぜて 1700 本で 53,743GB。
- 現在 15 位の富士通のシステムが容量的には最も大きくて 36GB ディスクを 1,800本で 57,636GB。
一方、登録されたシステムの中では 205.8GB というのが最小のようだ。 トップとの容量差は100倍以上。
「TPC-C を計測するためには、まずシステムを入れる体育館級のデータセンターが必要」と 冗談が言われるが、冗談になっていない。 こういうベンチマークは早くお払い箱にして欲しい。
[時事] ロンドンテロ
GMT 午前9時 (日本時間午後5時)、 ロンドン市中心部で地下鉄車両3件、 路線バスで1件で同時爆発テロが起きる。 死者・負傷者多数。
7/5 (火)
[Trivia] 「科学常識チェック」へのツッコミ
文科省が「日本の成人が身につけるべき科学技術リテラシー像」というものを策定しようとしている。 それに触れた読売新聞の記事 の中でくだんの国際比較の共通質問が引用されている。
この国際比較の共通質問は/.jp とかでも何度か話題になっている (日本人は科学に興味なし 日本の大人の科学力)。 自分が気になったツッコミどころをまとめてみる。
- 我々が呼吸に使う酸素は植物から作られた
-
この問題が一番怪しい。
幻影随想 でも指摘されているように、言葉の問題として植物「から」作られたわけではなく植物「によって」作られたとすべきだ。
それは置いておくとしても、地球上の酸素は- 35億年前から先カンブリア期までの間にシアノバクテリアが大量に酸素を作っている。シアノバクテリアは原核生物なので植物ではない。
- 現在において、海洋性の微生物が生産する酸素は、陸上の植物が生成する酸素を圧倒している。 酸素を発生させる海洋性の微生物はいわゆる藻類だが、生物5界説以上の分類では植物には属さない。
追記: 9/13
ついでに言うと、木の成長中は二酸化炭素を吸収して固定化するが、生育が終わった後は生産する酸素の量と消費する酸素の量がつりあうようになる。 そして木が枯れる・焼かれる時には二酸化炭素を放出することになる。
トータルで見ると、地球の酸素供給に地上の森が果たす役割は小さい。 - 抗生物質はバクテリア同様ウイルスも殺す
-
「同様」の意味による。
抗ウイルス剤となる抗生物質も発見されているので「抗生物質がウイルスを殺す」ともいえる。
とはいえ、ペニシリンがバクテリア全般に壊滅的に効いたのに対して、抗ウイルス剤はウイルス全般に効くわけではないので正解は×でも構わないのかもしれない。 - ごく初期の人類は、恐竜と同時代に生きていた
- これは「恐竜」の定義次第で○にも×にもなる。
生物の分類法の中で最も「科学の常識」に近いと思われる分岐学 (Cladistics)では、現生鳥類は「恐竜」に分類されてしまう。 ニワトリもダチョウも「恐竜」なのだ。
だとすると「ごく初期」と言わなくても人類は今まさに「恐竜」と同時代に生きているといえる。
# 今日、私は昼飯に恐竜の竜田揚げを食べた。
[Trivia] 生物の分類学の分類
「科学常識チェック」は、 生物の分類方法は「科学の常識」に含まないと考えているようだ。
だがそれも無理はないかもしれない。 私のような工学屋から見ると、 生物の分類学は複雑怪奇で、 分類学を分類するメタ分類学がないと到底理解できそうにない。 もちろんそういうメタ分類学の書籍や Web ページはあるのだが、 用語の不一致や分類方法の違いなどでかえって混乱してしまいそうになる。 メタ分類学を分類するメタメタ分類が必要なのか?
学問名が定かならず
分類学 とか 系統学 とか呼ばれている 生物を 分類 (classification) しようとする学問分野は、 興味の対象によって以下のように分かれている (らしい)。
- Taxonomy (分類学) ... 種を記載して学名をつけることが目的とした研究分野。
- Systematics (体系学) ... 記載された種を科や目などの高次分類群にまとめて、 分類体系を構築することを目的とした研究分野。
- Phylogeny (系統学) ... 系統関係 (=進化過程における分岐順序) を明らかにすることを目的にした研究分野。
とはいえ この分類もメタ分類者によって変わるし、 classifier の方でも自分のやっている学問をなんと呼んでいるのかは マチマチのようだ。 現場でやっている作業自体は Taxonomy と Systematics で重複しているようだし、 Phylogenetic Systematics などという境界的な学問名もある。
また訳語の問題があってワケワカメな状態になっている。 分類学 - Taxonomy、体系学 - Systematics という原語と訳語の関係が一定ではなく、 系統学 - Systematics と書いていある本もある。
分類学は多すぎ
大雑把にみて4つ系統に分類できる(らしい)。 分類手法や目的だけでなく、 歴史的な事情や政治的な動機で分かれているという側面もあり。
- 分岐分類学/分岐学 (Cladism / Cladistic Taxonomy)
- 進化学上の共通祖先のみを用いる。
表現上の特徴は無視。
遺伝子内の分子時計などを積極的に使い、 どの種とどの種がいつ頃分岐したかという点にのみ注目して、 二分岐グラフを作っていく。 分類としてはきっちりしている。 - 進化分類学 (Evolutionary Taxonomy)
- 表現上の特徴と進化学上の共通祖先の両方を用いる。
系統分類学 (Phylogeny) は Cladism と Evolutionary Taxonomy の両方を含む学問分野のようだが、 Evolutionary Taxonomy は Cladism に対して「伝統的」らしい。 - 数量分類学(Numerical Phenetic Taxonomy)
- 表現上の類似性のみを使い、進化学上の関係は無視する。
最近はコンピューターを使い 多変量解析の一つであるクラスター分析(cluster analysis)を ツールとして駆使している。
表型分類学とか数量表形学とも呼ばれる。
- 変形分岐学(Transformed Cladism)
- 生物を分岐的な二分岐のグラフの中に分類しよとするが、 進化学上の共通祖先ではなく、 表現上の特徴から分類を行う。
その他、分子系統学 (Molecular Phylogeny)というのもある。 分岐学 同様 DNA を使った分類方法を取るが、 方法論が最節約法のみを使うのに対して、 分子系統学ではそれ以外の分類方法も用いるようだ。
以上のようにメタメタに種類が多い。 分類学なんだから分類方法も もう少し分類できないものかしら?
参考
7/3 (日)
最近 購入した本
忙しくて積読状態の本が多数。
- チョコレート工場の秘密 (Charlie and the Chocolate Factory) (Roald Dahl著、柳瀬尚紀訳、評論社)
-
ロナルド・ダールの童話だが、ティム・バートン監督 ジョニー・ディップ主演で映画化されたため新装版が出版される。 訳者は
「指輪物語」で有名な柳瀬尚紀。 版元も「指輪物語」同じ評論社。 評論社は映画「Lord of the Rings」の時は腰の引けた販促活動をしていたが、今回は早めに手を打ったのか (^_^;
子供時代に読んだ時には、工場に訪れた子供がどんどんいなくなってチョコーレト作りの生贄にされる怖い話だと誤読していた。 今、あらためて読んでみると、チャーリー以外の候補者 & 保護者の身勝手さ以上に、ワンカ氏の独善ぶりが鼻につく。 ウンパッパ・ルンパッパ人で人体実験をしてみたり、後継者に求める資質は自分のやり方をそっくりそのままコピーできることだと言ってみたりと、よく考えると創業社長の欠点を集めたような人物だよなぁ〜。 本当にチャーリーはワンカ氏の後継者としてやっていけるのか?
(購入日:7/3) - 黒い夏 (The Lost) (Jack Ketchum著、金子浩訳、扶桑社)
-
読後感が最悪な小説家ランキング No.1 を爆走中のジャック・ケッチャムの最新の翻訳作品。 氏の作品は 「老人と犬」 を別にすると、 「隣の家の少女」・ 「オフシーズン」 (日記 2002/12/23、 2004/4/17) と陰惨な作品が多い。 まだ読みはじめた所だが、ページをめくるに連れてじわじわと狂気が広がっていく。
(購入日:7/1) - マキアヴェッリ語録 (塩野七生著、新潮社)
-
移動中の読み物として購入。
講談社学術文庫の「マキアヴェッリと『君主論』」をすでに持っている身としては特に新味なし。
(購入日:6/24)
7/2 (土)
画像ファイルアクセスの referer
Apache サーバーのログを見ていると、JPEG ファイルを読みにくる GET リクエストの referer が読み込む JPEG ファイル自身の URL を持つものが増えている。
おそらく画像への直接リンクを禁じるために referer の有無を確認するサイトがあるので、その対策のためにダミーの URL を入れるツールを使っているのだろう。
アクセスの User-Agent は Irvine/1.1.2
、Donut RAPT
か、あるいは偽装された思われるものが多い。
アクセスは国内のサイトからに集中しているので、国内ツールだと思われる。
P.S.
うち (www.nminoru.jp) は画像ファイルだろうが直接リンクしてもらって構いません。
っていうかすでに 私の公開した画像は方々から直接リンクされているしね。
[Java] Java コードの難読化
世のソフト開発者からは Java コードの難読化の要求が結構あるようだ。 Java のクラスファイルを逆コンパイルするのは簡単なので、 クラスファイルとして流通しているソフトからコードを抜かれたという事例があるそうな。 ここしばらく忙殺されていたが、 少し調査をしている。
難読化はより一般的には 耐タンパー性(tamper resistant) を 高める研究として先行する研究がいろいろある。 だが実際に適用するとデバッグ時が面倒になるとかテストの工数が増えてしまうという弱点が残る。
もう一つの解決手段としては暗号化がある。 簡単にやるにはクラスファイルを暗号化してクラスロード時に復号化すればいいのだが、 メモリ上では復号化された状態なので JVM をハックしてしまえば内容は読めてしまう。
難読化にせよ暗号化にせよ使い勝手が悪いと使ってもらえないので、 技術的な深さよりはツールのセンスが重要だと思われ。
7/1 (金)
[Java] Oracle が JDeveloper のライセンスを無償化 (ITmedia、MYCOM PC WEB)
サンフランシスコで開催中の JavaOne で Oracle の Java/J2EE 開発環境 JDeveloper 10g が無償化が発表されたようだ。 Oracle JDeveloper は EJB 3.0 のリファレンス・インプリメンテーションにもなり JavaServer Faces (JSF) でも先行しているが、 Oracle としては開発環境を売って儲けを出せるとは思っていないようだ。
開発環境の無償化・中止の話題としては、 以下のようなものがある。
- Intel が Linux 版の Intel C/C++/Fortran Compiler を非商用に限り 無償化
- Sun の OpenSolaris 10 の公開に伴う Sun Studio10 の実質無償化
- Apple が WebObjects 5.0 の無償化
- metrowerks の CodeWarrior の Desktop 版の販売終了
開発環境は釣り餌で、開発環境だけを売って飯が食える時代は終わりつつあるんだなぁ。
でも IBM だけはガチ。
外から見ていると Rational ツールでたらふく飯が食えているようにみえるよ。
追記:10/3
ダウンロード可能なった (10/3 の日記)。