*私はどのようにして計算機の専門家になったか [[Ich bin Computerfachman]] [#ibf30b3b]
ここには、計算機とネットワークについて、私の経験を書き残しておきます。
ここには、計算機とネットワークについて、私の経験を書き残しておきます。私自身についての一側面のようなものと考えていただいてもかまいません。

**大学生の頃 [#zea41e08]
***Pascal と RDBMS [#ef22db72]
大学に入学してすぐに [[FM16β:http://www.ipsj.or.jp/katsudou/museum/computer/4110.html]] という PC を購入しました。用途はほとんどプログラミングで、Basic のインタプリタもありましたが、[[TurboPascal:http://community.borland.com/museum/]] を使ってきれいなコードを書くことに熱中していました。大学の計算機でも Pascal のコンパイラは使えましたが、そもそも教育用の端末では日本語の表示もできず、不自由だったのです。

それと、ひょんなことから PC 用に開発された RDBMS を使うようになりました。

ある日、ドイツ語の授業で使われていた例文に、
 Herr Meyer ist Computerfachman. マイヤーさんはコンピュータの専門家です。
というのがありました。授業が終わるともう、主語を Herr Tanaka に置き換えたスキットが何者かによって作られていました。後に、これが冗談ではなくなってしまいました。

***Unix と C [#p7d9ded0]
1989年の夏休みに2週間、[[外資系の企業:http://welcome.hp.com/country/jp/ja/]]で実習生として働いたことがあります。ハードウェアの仕事だと思っていたらソフトウェアでした。当時、私は Pascal ばかり使っており、構造化プログラミングにどっぷり浸っていました。ところがこのときは、初体験の Unix (HP-UX) と C ということで、最初は結果が出せないのではないかと不安でした。

HP9000/300 につながった端末を与えられ、英語で書かれた本を2冊貸してもらいました。

-Maurice J. Bach, '''Design of the Unix Operating System,''' Prentice-Hall, (1986). 分厚いですが、この本がなければ課題をこなすことはできなかったでしょう。
-Brian W. Kernighan and Dennis M. Ritchie, '''The C Programming Language,''' Prentice-Hall, (1978). 有名な K&R 本で、初版の原書。

そして「あとはオンラインマニュアルを使ってね」と。

無限ループに陥っては同じ職場の人に kill してもらったり、辞書をひきながら参考書を読み、なんとか1週間でプログラムらしいものが書けるようになりました。次の週には、実際に使えるプログラムを書いて、実験をするというところまでこぎつけました。

#ref(yhp-unix-Jul1989.jpg,right,初期のプログラム)

***通信とノイズ [#f6defac0]
学部の研究室時代には通信におけるノイズの研究をしていました。信号のスペクトル分析のために、高速フーリエ変換(Fast Fourier Transformation: FFT)のプログラムをPCで動かしていました。アナログ回路もデジタル回路も自作です。演算増幅器(OPアンプ)を使ったフィルタを、徹夜で「大量生産」したこともありました。

-關英男, 『雜音』岩波書店, (1954). 古い本ですが、よくまとまった好著だと思います(この著者は後に[[と学会:http://www.togakkai.com/]]で取り上げられるようになりましたが、この本はまともです)。
-Andrew J. Viterbi and Jim K. Omura, '''Principles of Digital Communication and Coding,''' McGraw-Hill, (1979). 理論的な面では、この本から学ぶところが非常に多くあったと思います。

卒業論文は、指導教官の考案によるノイズ除去方式に対して率直な疑問を投げかけるというものでした。卒業がかかっているのに大胆な行動ともいえるかもしれません。しかし自分に対して正直に考えた見解を表明しただけなのです。私の卒業後、その卒論は関連の研究室で回し読みされていたらしく、指摘されている課題を克服するために、結果的にさらに研究が進んだようです。直接的な影響があるのかどうかはともかく、私の卒業から10年ほど経って、次のような論文が発表されています。

-久保田信久, 藤井邦夫, 内冨昭三, 「交互ノイズ除去法の特性改善」, 『電子情報通信学会論文誌』(基礎・境界: A), Vol. J85-A, No. 2, (Feb., 2002).

#ref(memo-Feb1992.jpg,right,卒業研究の過程で作成したメモ)

**大学院生の頃 [#he276172]
***秋葉原 [#n6349788]
東京で一人暮らしを始めて、よく足を運んだのは神保町の古書店と秋葉原のジャンク屋でした。当時の秋葉原はまだコミックなどの店はあまり多くなく、PC の周辺機器や電子計測器、部品などの放出品を漁っていました。

#ref(electric-town.jpg,right,秋葉原駅電気街口のサイン)

***パソコン通信とフリーソフトウェア [#d8ba3015]
秋葉原で購入した中古のモデムを PC に接続して、「パソコン通信」ということを始めました。MS-DOS に WTERM という組合せが一般的でした。思いがけない友人もできましたし、フリーソフトウェアと現実に出会うことにもなりました。そんな当時、非常にインパクトのある本が出版され、私も大きな影響を受けました。

-引地信之, 引地美恵子, 『Think GNU: プロジェクトGNU日記とソフトウェアの憂鬱』, ビレッジセンター, (1993).

しかし、GNU プロジェクトの Free Software Foundation (FSF) が当時、不買運動を呼びかけていた製品の魅力に負けて、購入してしまいました。以後、印刷する文書の多くは [[MacpTeX:http://macptex.appi.keio.ac.jp/~uchiyama/macptex.html]] で作成するようになりました。

もちろん、当時から基本的なユーザインターフェイスに独占的な権利が主張されるべきではないという FSF の主張は正当なものだと考えていました。

#ref(gnu-head-sm.jpg,right,GNU)

**駆け出しエンジニア時代 [#z4295fef]

***音声帯域モデム [#u9c64cf8]
会社勤めを始める頃、音声帯域を使うモデムの発達の概略を説明するために書いた一夜漬け文書(LaTeX で書いたものを PDFに変換してあります)。学部でやっていたことの続きでもあり、ユーザとしてモデムについて文献を集めて調査していたので、それほど苦しくはなかったです。

-モデム技術の発展 (1995年7月17日)
#ref(modem-j.pdf,,日本語[PDF])
#ref(modem-e.pdf,,English[PDF])

現在でも、伝達される情報量がシャノンの式によるという基本的な原理は同じで、電話の音声帯域を利用するモデムについて「その性能はほぼ限界に達しています」という部分についても現在から見て間違ってはいません。これを書いた後、56Kbps とビットレートのモデムが開発されましたが、これは従来のモデムが通信路の両端をアナログ回線であることを前提としているのに対して、片側をデジタル回線 (ISDN) にすることで総合的に信号対雑音比の向上をはかるというものです。

***Cyberdog [#ra6ca8cf]
Windows 95 が発売された頃だったでしょうか、Cyberdog というプロジェクトが立ち上がりました。少しだけ足を突っ込んで、メンバーの証をもらっています。

#ref(cyberdog.jpg,center,プロジェクトメンバーの証)

実はほかにも、Cybercow というサーバや Cyberpup というインターネット関連のプロジェクトが同時に存在し、総称して Cyber Tech と呼ばれていました(Cyberpup は「Appleインターネットスタータキット」として発売されました)。しかし、Open Doc ベースの Cyberdog に接した経験は、私の内面で、後の GNOME につながったのではないかとも思います。

***Sun [#m207b2bd]
1996年頃、[[Sun Microsystems, Inc.:http://jp.sun.com/]] の Unix ワークステーション SPARCstation 2 (中古)を個人的に購入し、既存の Macintosh と Ethernet で接続していました。OS は BSD の流れをくむ SunOS 4.1.4 です(今でもありますが、Solaris 7 がインストールされています)。[[GNU:http://www.gnu.org]] のツールの使いやすさを実感したのもこの頃です。

当時の上司は、ソニーの Unix ワークステーション [[NeWS:http://www.sony.co.jp/Fun/SH/2-12/h2.html]] の開発にあたった人で、しばしば Unix の話をしていたことを思い出します。

そういえばあの頃、「サンに買収される」という噂が流れ、報道されていました。実際にそのようなことはなかったわけですが、社外の人から「実際、どうなの?」などと聞かれ、知らないから答えようがないということも何度かありました。

***ノイズとの闘い [#h6dbdc2e]
会社が[[高層ビル:http://www.tokyooperacity.co.jp/]]の最上階の少し下に移転するということになり、そこへハードウェアの実験室を設置するための準備が、この会社での最後の仕事でした。内装工事もまだ進んでいない現場に測定器を持ち込んで、電源電圧の変動状況を調べたり、エレベータが動く時に強磁性体の運動によって地磁気が変動し、回路に電流が流れてしまう問題はどの程度の影響があって、どうすべきかといったことをまとめて報告したことを覚えています。

ここでも最後にノイズを扱うことになるとは。

#ref(appletech.jpg,right)

なお、この会社の守秘義務は退職後5年で失効するという契約になっています。念のため。

**企業のエンジニアとして書いて公刊されたもの、読んだもの [#lcd7ff48]
国内メーカ系の開発会社に転職して、幸いなことに原稿執筆や学会発表の機会が何度かありました。

***VoIP [#x30190e3]
最近では「IP電話」などと呼ばれています。この記事の図版が[[特許庁:http://www.jpo.go.jp/]]の標準技術集に[[収録:http://www.jpo.go.jp/shiryou/s_sonota/hyoujun_gijutsu/ip_tel/0001.html]]されているのですが、私の名前、漢字が違っています。
-「電話回線に代わってUDP/IPで音声を送るインターネット上で音声を伝送する技術−Voice Over IP」『[[インターフェース:http://www.cqpub.co.jp/interface/]]』1998年8月号, pp.119-124.
-「インターネットにおけるマルチメディア通信の国際標準 H.323 の全体像とシステム構成例」『[[インターフェース:http://www.cqpub.co.jp/interface/]]』1998年8月号, pp. 125-127.

当時かなり多くの文献を読みましたが、特に印象に残っているものをひとつあげるとしたら、これでしょう。

-三浦種敏(監修)『新版 聴覚と音声』電子情報通信学会, (1980).

音声の物理的な性質はもちろん、発声の生物学的なメカニズム、心理的な作用など、非常に幅広い領域をカバーした内容で、工学だけでなく、医学の研究者にとっても基礎的な文献であるようです。

***GNOME [#i0b0579a]
Unix やそれと互換性のある Linux などの GUI 環境を飛躍的に親しみやすいものにしようとしているのが [[GNOME:http://www.gnome.gr.jp/]] です。
-(共著)『GNOMEプログラミング−GNOMEアプリケーション開発の基礎』[[セレンディップ:http://www.serendip.co.jp/]]発行, 小学館発売, (2001年6月)

出版された当時としては最新のバージョン1.4を前提に書かれていますが、2.8がリリースされた現在でも、かなりの部分は参考になるでしょう。しかし改訂版が出るのにこしたことはありません。2005年はじめの時点で入手可能な本といえば、おそらくこれくらいではないかと思います。

-Matthias Warkus and Miguel De Icaza, '''The Official GNOME 2 developer's guide,''' No Starch Press, (2004).
-Matthias Warkus, '''GNOME 2.0. Das Entwickler-Handbuch,''' Galileo Press, (2002).

翻訳は、ソフトウェアの新しいバージョンに追いつけるかどうかという問題もあって、なかなか難しいと思います。

***リアルタイムOS [#mf96b76a]
Linux カーネルにパッチをあててリアルタイムOSを実現する [[Real-Time Linux:http://www.realtimelinuxfoundation.org/]] は、Linux 上で使える豊富な開発ツールなどが魅力的です。ところでこれまでに蓄積されてきた [[TRON:http://www.assoc.tron.org/jpn/]] の API を使って書かれたプログラムはどうしましょうか、というわけで Real-Time Linux を改造してμITRON 3.0 のサブセットを作ろうとしました。しかし双方の状態遷移を比較すると、μITRON には存在するのに Real-Time Linux には存在しない状態がありました。開発のかなめはこの部分です。
-(共著)「Real-Time Linuxを利用したμITRONシミュレータの開発」『[[電子情報通信学会:http://www.ieice.org/]]技術研究報告(CS)』Vol. 100,  Nos. 654-655, pp. 31-38, (2001年3月).
-(共著)「Real-Time Linuxを利用したμITRONシミュレータの開発」『[[情報処理学会:http://www.ipsj.or.jp/]]研究報告(OS)』Vol. 2001, No. 21, pp. 31-38, (2001年3月).

いずれも2001年3月5日(月)・6日(火)に「電子情報通信学会コンピュータシステム研究会」と「情報処理学会システムソフトウェアとオペレーティング・システム研究会」が共同で開催した、「実時間処理ワークショップ(RTP2001)」での発表論文です(同じタイトルで2誌に掲載されていますが二重投稿ではありません、念のため)。

#ref(webtech.jpg,right)

今となっては書き換えたいことがたくさんあります。これらの著作権は当時の勤務先にありますが、内容に関するお問い合わせはお気軽にどうぞ。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS