Brainstorm

Last updated 2002-11-11

目的

Brainstorm は、雑誌を通して十分伝えることの出来なかった部分や、これから挑戦する新しいテーマについて、読者の方々と直接ディスカッションしあう事を目的として設けました。この会は、私が一方的に講義するためのものではありません。学生さんや、プログラマー、エンジニア、医師(?)、うどん屋さん(??)、など様々の分野の人達が集まることで、新しい発想や物の見方が生まれることを期待しています。一人の人間が頭をフル回転させたところで、得られる知識はたかがしれています。ことなる分野の人達が同じ場所に集い、同じテーマに基づき、それぞれの立場で最大限に頭を働かせ、知識を交換し合う。これが Brainstorm です。

What's NEW

「テーマ3:APUE 読破プロジェクト 」始動

Brainstorm ML 参加者の呼びかけで、急遽先週発足したプロジェクト。UNIX システムプログラミングの聖典、故 Richard Stevens 氏による Advanced Programming in the UNIX Environment (略して APUE)を「オンライン抄読会」で読み込もうという企画です。

言うまでもなく本書は UNIX プログラミングをテーマにした希有な名作ですが、欠点も持ち合わせています。

まず第一点は Stevens 氏の著作は良い意味でも、悪い意味でも「百科辞典的」です。ですから、1ページずつ「舐める」ように読んではいけません。これでは百科事典を最初の1ページから順に読むようなものです。それでは、どう読み込んでいけば良いのか?この答えを参加者全員で探すことが本プロジェクトの目的のひとつです。

第二点は、システムコールとライブラリーの区別が今ひとつ曖昧であること。両者が根本的にことなるものであることは、Introduction においてきちんと説明されています。しかし、これで「本質」を理解せよというのは、少々無理があるでしょう。

第三点は全体的に「机上の」知識に終始してしまっていること(空論ではありません)。私は、プログラミングの知識はコーディングを通して初めて体得できるものだと考えています。10冊の名著を読んだところで、スキルが直ちにアップするほど世の中甘くはありません。四転八倒しながら苦労して身につけた知識こそが、将来役に立つのです。

そういう意味では APUE はあまりに美しすぎ、泥臭さに欠けています。私達は Linux 、NetBSD、さらには Inferno のソースツリーを追いかけることで、世界有数のシステムプログラマー達が苦労の末に残した軌跡を読みとらなければなりません。APUE が示す理想郷を実現するために、現実世界で一体何が起きているのか?この事実を自分達の目で確認してみましょう。

以上を念頭に置きながら、11/11月曜日から抄読会を Brainstorm ML 上でスタートします。大体各章20数ページ前後ですから、2週間で1章ぐらいのスピードで進めば、来春ぐらいまでには本書の基本部分は抑えることができるでしょう。

「読む」だけなら1週間で十分なのですが、それではただの輪読会に終わってしまうため、さらに1週間かけて知識を実践の場で昇華させます。具体的な進め方ですが、

・1週間かけて各自予習。
・月曜日から、各自レポートを提出。
 1.どこが面白かったか
 2.どこが面白くなかったか
 3.どこが分からなかったのか
 4.新しいテーマは生まれたか
 5.自分でコーディングしてみたか
 などについて述べてもらいます。
・提出された意見をもとに、情報の取捨選択を行います
・絞り込んだテーマについて、Linux/BSD/Inferno のソースツリーまで踏み込みながら、
 知識をさらに深めます
・システムコールが登場した時は、カーネルソース・ライブラリーソースを
 見比べながら、その技術基盤を可能な限り深く理解します
・その上で、自分オリジナルの標準Cライブラリーを記述していきます
 新しいシステムコールが登場する度にひとつずつ
・来春には「自分オリジナル」のCライブラリーが出来上がる!
 しかも No blackbox。
・レポートは強制ではありませんが、自己鍛錬のためには積極的な参加がより Better です

という予定です。1週間で20数ページというのは、少々きついかと思います。しかしこれぐらいの辛い思いを経験しなければ、いつまでたっても読めるようにはならないことも事実。皆さんの参加をお待ちしております(参加希望の方はまでご連絡ください)。

なお、本書は決して安い買い物ではありません。既に日本語訳を購入しておられる方もいらっしゃることでしょうから、日本語版での参加も歓迎します。

これまでの経過

第一回 Brainstorming 2002 年8月10日於 愛媛県松山市「テーマ:燃えよ SYMDEB!

記念すべき第一回の参加者は私も含め総勢6人。遠くは宮崎、名古屋、香川から各地を代表する精鋭が駆けつけてくださり、ノンストップ7時間の白熱したディスカッションとなりました。

Brainstorm ML 発足 2002年8月12日

Brainstorming 翌々日には Brainstorm ML が稼働。その後の新規参加者も含め現在総勢24人の小さなMLですが、皆さん熱いハートを持った方々ばかりです。

本MLを通じて、現在下記のテーマを考慮中です。内容は盛りだくさんなのですが、私の力不足で「笛吹けど、当人踊らず」の状態に陥っております。どうか長い目で見てやってくださいませ。

テーマ18086リアルモードを制覇せよ!

私の経験からして、最新OSを完全理解するためには一見遠回りのように思えても、リアルモード 8086 から学習する方法が最も近道だろうと感じています。世間一般からすれば「そんな20年以上前の代物を勉強してどうすんの」というところでしょうが、世界の PC-AT 互換機所有者の中でブートプロセスを具体的にイメージ出来る人達がどれだけいることでしょう?

応用は全て基本の延長線にあるのです。スポーツにしろ、学問にしろ、基本をおろそかにして成就はあり得ません。時計を20年前に戻し、そこから再スタートしましょう。幸い今は昔と違い、ソフトウェアやハードウェア環境が素晴らしく充実しています。この環境を最大限に活用すれば、20年の進化を1〜2年でトレースすることは、それ程難しいことではないはずです。

「テーマ2:AVR プログラミング工房

テーマ1とも関連するのですが、最近は Micro Controller Unit (MCU) と呼ばれる CPU が数百円で入手出来る時代になりました。日本では PIC が有名ですが、色々調べた結果「Atmel 社AVR」が教材としてふさわしいだろうとの結論に達しました。

AVR の開発キットは秋月電子などを始めとして、いくつか販売されているのですが、残念なことにその全てが Windows/DOS ベースです。どうせやるなら「No blackbox で」ということで、最小限の投資(2000円以内)かつ PC-UNIX 上から開発できる配布キットを計画しました。

が、一人で色々実験している間に「これは基礎から説明せねば・・」という気持ちがムラムラと湧いて来まして、現在パラレルポート接続でLEDを点灯させ、さらには赤外線リモコン送受信機能をもった工作キットを思案中です。

I/O ポート操作の基本を体得し、赤外線通信のプログラミングを通じて、「時間管理」の大切さ、PC-UNIX の限界、家中の家電をソフトで操る面白さを理解して頂く事が狙いです。

ただ、悲しいかな松山には秋葉原や日本橋に相当するものがなく、部品は全て通信販売で入手しなければなりません。可変抵抗器がない・・となると、1週間。コンデンサーがない・・となると、もう1週間という具合に際限なく時間がかかります。このあたりご勘案頂いた上で、もうしばらくお待ちください。

次回は?

第二回 Barinstorming 開催については未定ですが、現在メーリングリストを通じて、次のテーマのための資料集めやディスカッションが怒濤の如く続いています。今から第二回を予約しておきたいという奇特な方、もしくは勉強会メーリングリストに参加したいという方は、プロフィールを添えて私までご連絡ください。

平成14年11月4日

西田 亙 (NISHIDA Wataru)


Your SysOp is Wataru Nishida , M.D., Ph.D.