川村渇真の「知性の泉」

2001年の独り言?


●2001年12月25日:メインマシンが壊れた

 メインマシンのPowerBook G3が、ついに壊れてしまった。ここ1ヶ月ほどの間、だんだんと不安定さを増してきたので、変だなと思っていた。それがついに、簡単な操作の途中にフリーズするようになった。Mac OS Xなのに。やっかいなのは、フリーズするたびにディスク修復ツールで起動ディスクを検査&修復しなければならないなど、かなり悲惨な状況だったこと。
 最初のうちは原因不明だったが、フリーズの頻度がかなり増えた時点で判明した。マシンを起動するときに「メモリー検査で2次キャッシュがエラーが見付かった」とのメッセージが出て、2次キャッシュをオフして起動したからだ。なかなか賢く作ってあるもんだ。ただし、やっかいなのは、検査を問題なく通ることもあり、そうなると途中でフリーズしてしまう。後がさらに大変で、ディスク修復までやり直さなければならない。ときには、修復中にフリーズしたりもする。こんな状態では、まったく使いものにならない。
 これまでに、たしか13台(本体バージョンアップで別な機種になった分の2台を含み、中古は除く)のMacを購入している。そのなかで、マザーボードや液晶などの主要部品が故障したことは1度もない。ハードディスクが回転しなくなったのが1台と、マウスボタンのクリックが何十回に1回の割合で効かない初期不良が1台あるだけだ。それ以外の故障はしてないので、「私の買ったMacは、まず故障しない」と、いつも自慢していた……のに。
 今回故障したPowerBook G3は、買ってから約2年半の間、毎日欠かさず使ってきた。休日まで含めても、1日の平均使用時間が、少なくとも6時間になるだろう。単純計算で最低(6時間×365日×2.5年=)5475時間も動かしていたことになる。合計で5000時間を超えているのかぁ。これだけ使えば、壊れても完全にもとを取れただろう。
 メインマシンが使えないと、仕事と研究の両方とも滞る。仕方がないので、故障だと判明した翌日に、新しいマシンを購入した。実は、Macのノートマシンの場合、Mac OS Xの使用を考慮すると、あと半年ぐらいは買い時でないと思う。そのため、できるだけお金をかけたくないと考え、iBookを選んだ。クロック周波数が600MHzの中で一番安いDVDモデルで、これが14台目のMacとなる。
 買って実際に使ってみると、なかなか良いマシンだった。キーボードの打ち心地が悪いとか、筐体に傷が付きやすいとか、いくつか欠点はあるものの、ポリカーボネートで覆われた丈夫な筐体など、全体としては良い出来だと思う。Mac OS Xも、以前よりは快適になったし、安定度もマトモになった。厳しいのは、付属の内蔵ハードディスクが15GBしかない点。PowerBook G3に内蔵してた30GBと入れ替えなくては。入れ替え方法を調べていたら、写真入りで手順を紹介しているサイトを見付けた。ハードディスクの入れ替えと言うより、完全にばらすような感じだ。他の機種なら無料のショップまでが、あえて有料でやってるのも分かる。
 入れ替え方法が判明したので、後は自分で試すだけ。来年の初作業は、これにしよう。それにしても、これで保証が切れるというのは、何か悲しいなぁ。それと、ハードディスクの交換がこんなに大変なのは、設計が悪すぎる。今までのPowerBookでは、IBM製の2400cを除き、かなり簡単だったのに。何で?

●2001年12月11日:缶コーヒーが自販機で90円

 自宅から少しだけ離れた自販機で、90円の缶コーヒーを見付けた。今まで近所で見た中で最安値。カルテル価格の120円に比べると、25%引きの30円安だ。この差は、けっこう大きい。もちろん、一般的なメーカーの缶コーヒーで、同じ製品が他の多くの自販機では120円で売られている。
 この付近では、以前から少し安く売られていた。カルテル価格が110円だったときも、100円で売っている自販機が、離れた2箇所にあった。カルテル価格が120円に上がっても、100円の自販機では値上げをしなかった。すると、その隣や向かいにある自販機でも、さすがに値上げはできなかったようで、110円のままだった。この状態で、100円、110円、120円という3種類の価格に分かれた。2箇所の一部の自販機だけが100円、その周囲の自販機では110円、これらから離れた自販機では120円と。
 そしてついに、100円の自販機に入っている一部の製品が、90円に値下げされた。その中には、缶コーヒーも含まれる。嫌いな製品ではなかったので、最近では90円の缶コーヒーをよく買っている。似たものが90円で売っていると知ってて買えるのは、100円が限界だし。仕方なく120円のものを買うときは、凄く損した感じがするから。もうすでに体が100円に慣れてしまっているが、今度は90円に慣れてしまうだろう。
 それはそうと、90円で売れるということは、120円だとかなり儲けているのかな。それとも、流通コストが凄く高いのだろうか。でも、けっこう儲かるから、街中が自販機だらけになるんだろうな、きっと。一番納得できないのは、こんな時代になってもカルテル価格が維持されている状況自体なんだけど。そういえば数年前にテレビ番組で、自販機メーカーと缶飲料メーカーが組んで、安売り業者に自販機を売らないようにしていると、報道していたのを思い出した。その番組によると、安売り業者は中古の自販機しか入手できなくて、規模を拡大できないとか。うーん、公正取引委員会って、マトモに機能しているのかな〜?

●2001年10月26日:友人の予想が的中

 プロ野球の日本シリーズが始まる前に、ある友人が電話をかけてきた。話の中で「前評判でバッファローズが有利と言われているが、スワローズが絶対に優勝する」と断言した。「もしかすると4連勝、普通に行けば4勝1敗、悪くても4勝2敗で勝つ」というのだ。
 あまりにも強く断言するので、その根拠は何かと尋ねてみた。すると意外な答えが返ってきた。「今の日本でな〜、今の日本でだぞ〜、一番ツキのない動物は“牛”なんだ。牛ほど、世の中の多くの人に嫌がられて動物はいるか〜。いないだろ〜。こんな時期に、猛牛が勝つはずはないよな〜。それとスワローズはなぁ、厚生労働省と違って、猛牛対策をちゃんとやってるよ。古田捕手を中心に」と。その場では「おいおい」と突っ込んでしまったが、その友人の予想どおりの結果に終わった。近いうちに、自慢の電話がかかってくるな。きっと。

●2001年10月25日:1ページ書くのにかかる時間

 本サイトでは、様々なテーマを取りあげていて、1ページの情報量もまちまちだ。最近書いている中では、「新しい時代の教育」コーナーに含まれる「能力教科での教育内容の設計例」の各ページが、かなり長い内容になっている。本来なら数ページに分割すべきだが、そうするとコーナー内のページ数が増えるので、あえて1ページで書いている(ただし、将来は分割する可能性あり)。
 含まれる内容が多いほど、書くのにも時間がかかる。また、上記の設計例の場合は、内容の設計作業まで含まれるため、さらに時間がかかる。おまけに、この設計例はさらに特殊で、対象となる技術の中身を最初に設計し、それを教えるための教育内容を続けて設計しなければならない。つまり、2段階の設計内容が含まれているわけだ。結果として、書き終わるまでの時間は相当に長くなってしまう。
 最近書いた「意見調整技術:最良解の選択で良い意思決定に貢献」を例に挙げると、実作業時間だけ集計しても、40時間以上はかかっている。1日8時間労働に換算すると、最低でも5日分の労働に相当する。かなり多い作業時間だと感じるかも知れないが、この作業時間数は、いくつもの思考道具を駆使しながら、かなり効率的に設計した結果だ。そうした道具を使わなければ、この何倍も時間がかかるし、設計結果の質も悪くなってしまうだろう。
 最近はこんな内容を書いている(実際には設計している)ので、更新頻度がさらに下がってしまった。頻度よりも中身の質が重要なので、更新頻度が下がっても気にせず、気長に更新していこうと思う。
 ちなみに、設計に使った思考道具は、「頭の使い方を良くする思考のヒント」コーナーの「論理的な思考に役立つ道具たち」で紹介しているものが中心だ。どんな課題の検討にでも使える道具なので、いつも利用している。皆さんも、積極的に使ってみてはいかがだろうか。利用例を参考にして。

●2001年8月20日:情報中心システムの基本構造を設計中

 情報中心システムを実現するための第1歩として、基本構造を設計している。まとまった時間が確保できないため、期待したようには進んでいないが、基本構造はまとまりつつある。
 本気で設計しだすと、どんどんと欲が出てきた。システムの将来の拡張も視野に入れ、自由度が非常に高い形で設計したくなる。ユーザーインターフェースを自由に追加でき、それらを用途ごとで使い分けるような機能まで入れたくなった。また、エージェント指向技術を後から加えられるようにしておき、高度な自動化を容易に実現できる形にもしたい。こんなことを考えていくと、基本構造ですら簡単にはまとまらない。そんな感じで、どんどんと時間が過ぎていった。
 以上のような考え方は、非常に重要だと思う。既存OSは限界に達しているため、まったく新しい仕組みが必要だが、新しいシステムが一時的なものであってはならない。コンピュータが実現する機能はどんどんと増えるので、基本構造を変更して新しいシステムへ移行することは、今後ますます大変になる。今後新しく採用するシステムでは、非常に高い柔軟性を持ち、必要な機能だけ追加して、今までの機能と一緒に使えるような仕組みを、最初から用意していなければならない。情報中心システムのような仕組みなら、それが可能である。
 こんな感じのことを考えながら、暇を見付けて設計している。ある程度まで確定できたと判断したら、概要から順番に公表するつもりだ。

●2001年8月7日:仕様書の書き方と一緒に設計方法も解説

 最近の更新では、システム開発の仕様書に関して集中的に書いている。内容を読んで分かると思うが、仕様書に書く内容は、設計する内容そのものである。また、設計の過程まで仕様書に書くので、仕様書の書き方を説明することは、設計の手順を説明することに等しい。というわけで、表向きは仕様書の書き方を説明しているものの、設計の手順や考慮点の説明も目的に含まれている。そのため、サブコーナーのタイトルを「設計の質を高める仕様書の書き方」と付けている。
 これとは別に、設計の仕方をストレートに説明する方法もある。しかし、システム設計の場合には、考慮すべき点が多くて設計内容が複雑なので、仕様書を書かずに設計するのは極めて難しい(設計したと言えるレベルを目指さなければ別だが)。そこで、仕様書の書き方を中心に置きながら、設計方法まで説明しようとしたわけだ。
 もう少し詳しく述べると、設計方法に含まれる内容はいくつかのレベルに分けられる。もっとも汎用的なのは、どんなシステムや開発手法にでも適用できる部分で、設計のもっとも根本的な考え方や進め方を含んでいる。今回、仕様書の書き方と一緒に説明しているのは、この部分だ。
 特定の対象に関する設計方法も重要で、該当する内容は、1つ前のサブコーナーである「システム各部の上手な設計術」に書こうと考えている。どんな内容が含まれるかは、準備中の目次を見れば分かるだろう。こちらの方は、少しずつ整理しているものの、最初考えたようには進んでいない。遅れている最大の理由は、それぞれの対象に関して、設計での考慮点や手順などを体系化しなければならず、その作業がかなり難しいからだ。ゆっくりとだが、1つずつ増やしていこうと思っている。
 やりたいこと、やらなければならないことは数多くあり、時間が足りなくて大変だ。

●2001年7月22日:参院選の自民圧勝で社会進歩が遅れるかも

 来週の29日は、参議院議員の選挙の投票日だ。スローガンばかりで中身が不明なのにもかかわらず、小泉首相が以前として人気があるため、自民党の圧勝(と表現するほどでもないが)が予想されている。おそらく、そうなるのはほぼ確実だろう。根本的な疑問だが、構造改革に一番反対している勢力が自民党内にあるという状況の中で、本当に改革が進むのだろうか?
 小泉首相の人気のおかげで、支持の低下し続けていた自民党が息を吹き返した。この党には、社会の良い進歩に逆行する意識を持つ議員が多い。その当選者数が増えることは、長い目で見た場合、社会の進歩が遠のく可能性が高い。今回の選挙で復活すれば、大規模な政界再編でも起こらない限り、日本社会の進歩に10年ほどの遅れを生じさせかねない。参議院の選挙だから、それほど大きな影響が出ないかも知れないが、やはり心配してしまう。

●2001年5月18日:情報中心システムをオープンソースで

 「思考支援コンピュータを創る」のコーナーで紹介している情報中心システムの研究は、ここ数年間ほとんど手を付けていなかった。いくら研究しても実現のチャンスがないからで、その分の時間を別な研究テーマに割り当てていた。
 ところが最近になって、状況というか実現可能性はかなり変化した。オープンソースという新しい方法が登場したからだ。この方法を用いれば、時間はかかるかも知れないが、実現の可能性はかなり高まる。もちろん、協力する人が現れることが大前提ではあるが。たとえ誰の協力も得られなかった場合でも、設計した内容は、将来のコンピュータ業界にとって貴重な財産となるため、設計する価値は大いにあると思う。
 多くのソフトウェア技術者にとって気になるのは、情報中心システムの実現の可能性だろう。結論を言ってしまえば「技術的には難しくないが、作業量はかなり多いので大変」ということになる。アプリケーションとファイルが基盤となる既存システムとは構造がまったく異なるため、すでにあるソースコードを部品の形で利用できるものの、その組み込み方に加え、全体の制御方法などは新しく作らなければならないからだ。また、技術的には難しくない理由については、内部構造の詳しい部分まで公開したとき明らかになるだろう。実現方法を知ったら「なるほど、この手があったか〜」と思うに違いない。
 全体の構成は、複数の層に分けたレイヤー構造(もちろん完全なレイヤー構造ではないが)を採用して、レイヤー間のインターフェースを細かく規定し、レイヤー単位での入れ替えを可能とする。このような形だと、一部のレイヤーだけ機能を拡張したとき、与える影響が少なくて済む。パソコンを中心としたCPUの処理能力が今後も相当に向上するので、採用できる方法である。
 時間のかかる開発では、少しでも早目に動くものを見せることも大切。そのため、ヤドカリ方式(仮称)も検討している。Linuxなどの既存OSの上に、専用のインターフェースを何個か用意し、既存OSで代替できない重要な機能だけ先に開発する方法だ。情報中心システムの構造自体がレイヤーのインターフェースを持つため、インターフェース変換機能を用意することで、最初に作る機能を減らそうという目論見である。ハードウェアとのやり取り、画面描画機能、タスク管理などが利用できないか検討する。
 開発の第1段階として、情報中心システムの内部構造を設計する必要がある。実現方法はいくつもあるが、将来の拡張を考慮して、最適な形を導き出さなければならない。その先の機能も見えているので、それほど難しくはない。機能の柔軟な組み合わせを可能とする形にして、エージェント指向技術などが最大限に生かせるシステムに仕上げるつもりだ。
 作業の進め方だが、あまりあせらず、ゆっくり前進しようと思う。既存OSの方は、劇的に進歩することに関し、その兆候すら見えないからだ。いくらあせっても、割り当てられる時間は限られていて、急には進まないし。
 情報中心システムが実現すれば、当初はクライアント側に限られるが、既存OSの価値は大きく低下してしまう。あまりに強力なインパクトを与えるので、その中身はまだ触れずにおこう。

●2001年4月14日:能力教科の設計例は能力向上のヒント

 本サイトの「新しい時代の教育」コーナーでは、「能力教科での教育内容の設計例」の中身を、少しずつ作りながら公開し始めた。取り上げているのは、基礎も含めた重要な能力を習得するための教育内容だ。どの能力教科でも、どんな内容が含まれるのか伝える意味で、能力の基本的な内容を説明するとともに、「段階分けの設計例」を付けている。
 段階分けはタイトルしか用意していないが、中身をできるだけ推測できるようにと、言葉の表現に注意している。段階をかなり細かく分けているので、段階分けを見れば、各技術がどんな内容を含むのか、どんな点に注意すべきなのか、大まかに分かるだろう。そのため、対象技術を自分で身に付ける際にも、ヒントとして役立つ。
 もちろん、タイトルだけなので簡単なヒントでしかなく、ヒントを参考にしながら自分で考える必要がある。それでも、何もないよりは遙かに貴重な情報といえる。何しろ、こういった種類の情報は出回っておらず、入手が難しいからだ。
 自分で考える際には、「対象となる能力を上手に実行するにはどうすればよいか」に加え、「その項目がなぜ含まれているのか」を検討するとよい。どの項目も、理由があって入れたのであり、上手に実行するために役立つからだ。こんな視点で考えると、より詳しい中身が導き出しやすい。また、こうして考えた過程も重要で、対象能力を深く身に付けるだけでなく、物事を深く検討するための基礎となるだろう。
 理想的には、もっと詳しい内容まで書くと、より多くの人が習得できる情報となる。しかし、そのレベルで提供するためには、能力教科ごとに最低でも単行本1冊の説明量になるので、時間を確保するのは困難だ。次のステップとしては、もう少し詳しい内容と、実際に作った例の紹介が考えられる。ただし、それを始めるのは、ほとんどの能力教科の設計例を書き終わった時点になるだろう。
 というわけで、該当する能力を身に付けたい人は、「段階分けの設計例」を参考にし、自分で考えながら試してはいかがだろうか。基本的な部分は本文内で説明してあるため、実際に作ってみると、良い作り方が少しずつ見えてくると思う。

●2001年3月15日:Swingのテスト自動化手助けクラスを製作中

 JUnit(Java専用のテスト用フレームワーク)の活用ノウハウを構築している中で、Swing使用のJavaプログラムのテストを自動化したくなった。JDKのバージョン1.3からjava.awt.Robotクラスが追加され、テストの自動化を助けてくれる。これはこれで良いのだが、本格的なテストを実現しようとすると、機能的に足りなかったり使いにくい部分がいくつもある。
 そこで、不足する機能を独自のクラスとして作ることにした。こんな目的で重宝するのがjava.lang.reflectパッケージ。これを用いると、かなり細かな部分までの自動化が可能になる。もちろん、テスト対象となるプログラムの側でも、テストしやすいように考慮して作らなければならない。また、テスト用クラスなので、使い方が間違ったときのエラーメッセージを充実させ、トラブルで余計な時間を使わない工夫も求められる。さらに、細かな仕組みなど考えずに使えることも重要だ。加えて、いろいろなテストができるように考慮すると、どんどんと機能が増えてしまう。どこまで作るべきか、かなり迷いながらの設計&製作が続く。
 ある程度までできたら、ソースとともに世間に公開する予定でいる。いつ頃になるかは、他の仕事との兼ね合いがあり、まだ確定できてない。公開に際しては、クラスライブラリの使い方、テスト対象をテストしやすく設計およびプログラミングするルール、上手なテスト方法なども一緒に解説する予定だ。
 それよりも困っているのは、以上のようなことを続けているので、通常のサイト更新に割り当てる時間がほとんどない点。このページの更新で何とか頻度を保っている。次回からは、通常の更新を何回か続けたいのだが……。

●2001年3月9日:Pocket Scope

 最近知って面白いと感じた製品は、何といっても「Pocket Scope」(興味ある人は、検索サイトで見付けてね)。オシロスコープ(電圧の変化を画面に表示する測定装置)も、ついにポケットへ入る時代になった。9Vの電池で動き、3時間の連続使用が可能という。当然ながらデジタルサンプリングで、測定した波形を画面上に保持できる。
 かなり昔になるが、電子回路の設計をしていた頃、オシロスコープには大変お世話になった。デジタルサンプリング可能な製品が貴重で、取りあいになったのを覚えている。その当時でも、携帯型の製品はあったが、外付けのCD-ROMドライブぐらいの大きさだったと思う。それが今や、電源(=電池)まで内蔵して、ポケットに入るサイズになるとは。これも、マイクロプロセッサーの進歩のおかげだ。
 Pocket Scopeの価格は、某ショップで2万9800円。意外に安いため、思わず買いそうになった。買っても使わないのが明らかなので、何とか思いとどまったのだが。でも、一度ぐらいは使ってみたい。

●2001年3月6日:ホールズのCM

 テレビで最近流れているホールズ(爽快感を与える飴の商品名)のCMをご存じだろうか。場面は駅のホームで、何人もの人が並んで電車を待っている。その中に女性がいて、周囲の男性が吸うタバコの煙に困っている。そんな状況を、元プロ野球選手の江川卓氏が見付け、女性に向かってホールズを投げる。そのホールズは女性の口に入り、タバコの煙のために悪くなった気分が、一気に解消するという趣向だ。
 あきれた内容で、見るたびにガッカリする。いくらホールズをなめても、タバコの煙が体に悪い点は改善できない。あんな状況は健康を害するだけなので、逃げるのが一番。ところが、ホールズをなめて我慢する方法を選んでいる。この内容では、他人に迷惑をかける行為に対して、我慢しろと言っているに等しく、迷惑行為を容認するようなものだ。こんな内容を放映して、関係者は何も感じないのだろうか。
 このCMを最初に見たときは、タバコを吸う男性に向かって何かを投げつけ、女性を助けるのだろうと予測した。そうすれば、逆に面白いCMとなっただろうに。ホールズとは関係ない内容になるが……。

●2001年2月20日:JUnitの活用ノウハウ構築中

 Java用のテスト用フレームワークであるJUnitを、本格的に使い始めた。といっても、使い方自体はとても簡単だ。それより大事なのは、テストの質を高めるための活用術。今まで蓄積したテスト・ノウハウを投入して、JUnitを利用しての上手なテスト方法のルールを作っている。また、オブジェクト指向に適したテスト方法も考慮し、Javaが持つ機能に合わせたテスト内容設計も含めるつもりだ。たとえば、クラスの継承、インターフェース、委譲関係、ディープコピー、ファイルの扱い、直列化、GUI、例外、マルチスレッドなどで、どのようなテストを実施すべきなのか、どんな工夫をしたら質の高いテストが可能なのか、検討しながら設計している。重要なことは、テストもシステム設計と同じで、質を高めるためにはキチンと設計しなければならない。テスト方法も、テストケースも。もしある程度のレベルで完成したら、雑誌か単行本で発表したい。


下の飾り