ぜんぜん日々更新ではない日記です

まぁ、ぼちぼちやっていきます。
このページは最新7日分で、逆順(最新が上)で並んでいます。
過去のものはヘッダ部分のリンクから選べます。

目次

2017-02-18 ハンス・アスペルガー 誕生日(1906)
2017-02-16 パソコン通信が生まれた日(1978)
2017-02-13 ウイリアム・ショックレー 誕生日(1910)
2017-02-11 リチャード・ハミング 誕生日(1915)
2017-02-10 西和彦 誕生日(1956)
2017-02-08 ボブ・バーマー 誕生日(1920)
2017-02-08 ゲーム会社の仕事
 今月の日記
ハンス・アスペルガー 誕生日(1906)  2017-02-18 17:30:52  今日は何の日

▲目次へ ⇒この記事のURL

今日は、ハンス・アスペルガーの誕生日(1906)


今日は珍しく、コンピューターとは関係なさそうな話題。


アスペルガーはオーストリアの小児科の医師で、特に精神的な発達障害、今でいう自閉症を研究しました。


当時すでに「自閉症」の研究は始まっていました。

しかし、今ほど理解が進んでおらず、自閉症の原因は知的障害で、言語能力などが発達していないためにコミュニケーションが行えないのだ、と考えられていました。



しかし、アスペルガーは自閉症児との交流の中で、そんなに単純ではないことに気付きます。


通常の…精神病に分類されない人々も、知能の高い人と低い人、言語能力の高い人と低い人がいます。

そして、自閉症の子供にも、同じように知能や言語能力の高低があると理解するのです。


ただ、自閉症児は、振れ幅が非常に大きいのです。

…いや、振れ幅が非常に大きく、通常の人の枠組みを超えるから「精神病」に分類されるのかもしれません。


ともかく、自閉症児は知的障害を持つ、と考えられていたのは誤りで、場合によっては非常に高い知能・言語能力を持つのです。


彼は、こうした例に興味を持ち、多くの症例を論文で報告しました。


しかし、多くの論文は、ドイツ併合下のオーストリアで発表されたものでした。

他の言語に翻訳されることもなく、彼の仕事は世界的にはあまり知られることがありません。


アスペルガーは 1980年10月21日死去。

その直後、1981年に彼の論文をイギリスの精神科医、Lorna Wing が英語翻訳し、彼の報告した症例は「アスペルガー症候群」として世界に知られることになります。




アスペルガーは小児科医で、子供を非常にあたたかな目で見守っていたようです。

彼がアスペルガー症候群を報告し続けたのも、子供を守るためだった、という側面があります。


というのも、先に書いた通り当時のオーストリアはドイツに併合され、ナチスの支配下にありました。


ナチスは優生思想…優れた人間だけが子供を残すことで、悪い遺伝子を排除して、よい社会を作り上げる…を政策に取り入れていました。

ユダヤ人の大量虐殺も、「ユダヤ人は劣っている」という差別意識から行われています。


そして、同じように「先天性の精神疾患は、悪い遺伝子である」という考えから、やはり大量虐殺が行われています。

知的障害者である、というだけで殺されてしまう世の中だったのです。



しかし、アスペルガーは、自閉症の子供の中に「そこら辺の大人よりも優れた知能を持っている」子供がいることを示しました。

しかも、そうした子供も見た目の上では自閉症の…他の知的障害を持った子供と同じなのです。


これは、自閉症の子供を虐殺から守る効果がありました。

専門知識を持たないものが自閉症の子供を殺すことは、もしかしたら「将来の国の宝」を失うことになるかもしれないのです。



オーストリアは、「SOS子供の村」という、世界的な NGO活動団体の発祥の地でもあります。

何らかの都合で幸せな生活を送れない多くの子供を保護する活動で、現在では 100以上の国で 100万人以上の子供がサポート下にあります。


設立者、ヘルマン・グマイナーから要請を受け、アスペルガーも活動に協力しています。

もちろん、彼の専門である小児科医として。


彼はウィーン大学小児病院の理事もしていましたから、多忙でした。

それでも、「子供のために」そうした活動に参加しているのですから、非常にやさしい人だったのだろうと思います。



参考:アスペルガーの生涯(ドイツ語サイト)





さて、ここからは自分の話。

僕は以前に、自分も子供の頃アスペルガーだったのだろう、と書いたことがあります。


アスペルガー医師が研究したのは、ある程度「重度の」子供たちだったのだろうけど、こうしたものは軽度から重度までグラデーションがあるからね。

僕は多分、軽度のアスペルガー。


子供の頃はこんな区分なかったよね、と思っていたのだけど、上に書いたように世界に紹介されたのが 1981年。

日本で知られ始めたのは、1990年代の半ば過ぎだったのではないかと思います。



アスペルガー症候群の問題点…人とのコミュケーション下手は、大人になるにつれて多少改善します。

と言っても、「病気が治る」とかの意味ではないよ。症候群、と言われているけど、別に病気ではないし。


ただ、普通の人なら当たり前にできるコミュニケーションを、何度も失敗しながら覚えていくだけです。

上手くできないと言っても、失敗を繰り返せば覚えざるを得ない。

アスペルガー特有の記憶力の良さがあるから、徐々に「普通」を理解していきます。


僕は今でもコミュニケーション苦手です。

ツイッターやっているけど、あまり人と会話しないし。

WEB ページ作っているのも、これなら一方的に言いたいことを発信できるから、というだけ。



で、自分もそうだからよくわかるのだけど、アスペルガーは非常にプログラマーに向いてます。

研究者一般向いていると思うのだけど、僕はプログラマーだったからね。


…と、ここで普段コンピューターの話を書いている「今日は何の日」で、アスペルガー医師を取り上げた理由が出てくるわけです。




重度のアスペルガー症候群とか、そうでなくても子供のころから「頭が良いから」という理由で、ちょっと変わり者であることが許容されてしまった人とかは、人とのかかわりで失敗して「普通」を覚える機会が失われてしまいます。


これは非常に残念なこと。

先日書いたウィリアム・ショックレーとか、明らかにアスペルガーの悪い面が出てしまっている。


ショックレーはトランジスタを発明したチームのマネージャーで、彼自身も重要な改良発明を行っており、ノーベル賞を受賞し、後にシリコンバレー発展の種となる研究所まで作った。

でも、自分の部下を信用することもできず、周囲のすべてを敵に回してしまうのです。


超が付くほどの天才なのでアスペルガーとしても重度だったのかもしれませんし、天才と持ち上げられることが多かったために、周囲と折り合いをつける方法を学べなかったのもあるように思います。



先に書いたように、僕が子供の頃は「アスペルガー」なんて概念もありませんでした。


しかし、今は理解が進み、軽度の症例でも簡単に「アスペルガー」だと診断されます。

小学校のクラスに一人はいるような、ごく普通の存在。


「クラスに普通にいる」というのが大事ね。

知的障害を伴う自閉症児は、特別学級に入れられることも多いです。


でも、アスペルガーは知的レベルには何の問題もない。

だから、普通に学校に通えます。

ただ、人づきあいが下手だから、いじめにあったりするだけで。

(僕もいじめられたクチなので、本当によくわかるのです)



必要なのは、周囲の大人の理解です。小学生レベルだと、親が気付いてサポートするのが良いでしょうね。


付き合い下手かもしれないけど温かく見守って…でも決して甘やかさないで。


先に書いたように、衝突して失敗すれば徐々に覚えるから、甘やかしちゃいけない。

ただ、失敗しても「ちゃんと学ぶ」ように導いて、失敗のことは水に流してあげてほしいのです。


そして、その子が興味を持ったことは否定せず、とことんサポートしてあげて。



「そんな趣味役に立たない」と考えるのは、大人の偏見です。

子供時代に蓄えた知識は、必ず将来役に立ちます。


僕も子供の頃、クラスに「東海道線の駅名を全駅言える」なんて奴がいた。

それは何の役にも立たないです。でも、駅名を言うことで周囲に受けたのでどんどん他の線の駅も覚えて行って…


最終的に、中学の頃には暗記科目がすごく得意な奴になりましたよ。

なんか、覚えようと思ったことを確実に覚えられるメソッドを、自分なりに獲得したみたい。



僕は小学校の時にコンピューターに興味を持って 4bit マイコンを買ったり、中学の時にはファミリーベーシックを買ったりしました。


御多分に漏れずコミュニケーション下手だったので、中学では部活にも入らずさっさと家に帰り、自分でゲームを作ってばかりいました。

それをベーマガに投稿するのが楽しかったのだけど、成績が落ちて親に「そんなことをしていても将来役に立たない」と怒られたりもしました。


でも、その時は一時的に禁止されたのだけど、その後勉強もちゃんとやって節度を持つなら、プログラムを組むことを許してくれた。

「役に立たない」なんて言いながら、理解はしてくれていたのです。


おかげで、今では独立してフリーのプログラマでやっていける程度の腕にはなっています。

ちゃんと役に立った。




アスペルガー症候群って、精神病の一種と考えられているから、この症名を聞くと取り乱す人が多いみたい。


でも、これは「周囲から浮いてしまうほど頭が良い子供たち」につけられた症名です。

「この子は天才肌だ」と言われているのだと思ってください。悪いことじゃないんです。


事実、アスペルガー医師自体が、そうした子供に敬意を払い、「小さな教授」と呼んでいたのだから。



▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

今日は何の日

別年同日の日記

05年 忙しい1週間・木曜日

07年 最近のうちの子

15年 占い開発の初期

16年 歯科矯正

16年 秒殺(1)


名前 内容

パソコン通信が生まれた日(1978)  2017-02-16 10:21:54  コンピュータ 今日は何の日

▲目次へ ⇒この記事のURL

今日は「パソコン通信」が生まれた日(1978)


当ページでは、古いコンピューターの話題も多数取り上げています。

だから、いわゆる「コンピューター通信網」は、これよりずっと前からあったよ、と言わないわけにいきません。


でも、1978 年の今日、「パソコン通信」が生まれたのです。




インターネットの前身となる ARPANET は、1969年には生まれています。


「テレタイプ」同士を電話線で繋げて通信を行うのはもっと昔からありました。

そして、テレタイプはコンピューターの入力機器としても使われました。当然、電話越しの利用もありです。


DEC の PDP-10 は1966 年に出荷されたマシンで、タイムシェアリング…複数のプログラムを同時に動かせる機能が特徴でした。


#今では複数のソフトが同時に動くなんて当たり前の話ですが、1990年代初頭までは一般的ではなかったのです。


このタイムシェアリング機能と、電話線越しのテレタイプ接続を使って、コンピューターを時間貸しするサービスが 1968年には存在しています。

1980年代には世界最大手のパソコン通信会社だった CompuServe も、1969年に創業したコンピューターの時間貸しサービスの会社でした。


とはいえ、コンピューターに電話線で接続してできることは、コンピューターのアプリケーションを利用すること、だけでした。




1975年、Altair 8800 が登場します。世界初の「パーソナルコンピューター」でした。


Altair は…作った MITS 社自身が売れるとは思っておらず、量産体制を整えてなかったため、入手困難な人気商品になりました。

そして、回路をほぼ丸ごと真似した「互換機」が大量に発売されることになるのです。


Altair の設計の特徴は、すべてを…CPU すらも、「周辺機器」と考え、それらを結び合わせるバスを巧妙に設計したことにありました。

このバスは S-100 バスと呼ばれ、互換機は S-100 コンピューターと呼ばれます。



シカゴに住むワード・クリスチャンセン (Ward Christensen) は、こうした互換機の内の一つを入手しました。


ワードは、近所のコンピューター愛好家の集会に顔を出すようになります。


Cicago Area Computer Hobbyists' Exchange、略称で CACHE と呼ばれる集会で、ランディ・スース (Randy Suess) と知り合います。

二人は打ち解け、仲の良い友達になりました。



1960年代末から普及し始めた「コンピューターの時間貸しサービス」は、電話回線越しにテレタイプやコンピューターを接続するための「モデム」を、一般的な電気製品にしていました。

コンピューターショップに買いに行けば、誰でも手に入れることができるのです。


ワードとランディは、この面白い機械を使えば、CACHE に顔を出して紙テープの受け渡しをしないでも、コンピューターのプログラムを交換できると考えました。



この頃の通信網というのは、それほど品質が高くありません。時々電気ノイズにより、ビットに「誤り」が起きるのです。

コンピューターの時間貸しを行っているだけであれば、それらは「文字が化ける」ことになります。


結果の数字が運悪く別の数字に化けたりすると困りますが、そんなに都合よく化けることはあまりなく、アルファベットなどに化けるので「おかしい」ことが分かります。

おかしいと思えば、再度計算させて確認することもできます。


しかし、コンピューターのプログラムで 1bit 間違える、というのは致命的です。

品質の悪い回線で、絶対にデータを間違えない転送方法を考案する必要がありました。



ワードは、300bps のモデムでデータ転送を行うための「MODEM」というプログラムを作り上げます。


128byte 転送するごとにチェックサムを送り、相手が「正しい」と信号を送ってくれば次を送ります。

もし「再送」という信号が来れば、同じ 128byte を送り直します。


これを最後まで繰り返せば、間違いなくバイナリプログラムを送ることができるはずです。



このプログラムは仲間内で話題となったようです。

それまで、パソコンは単体で使うもので、「電話線越しに接続する」なんて試みはなかったのですから。


やがて、パソコン同士を接続できるのであれば、みんなに伝えたいことなどを記録しておき、誰でも好きな時に確認できるシステムは作れないだろうか、という構想に発展していきます。


パソコンを相手とした留守番電話、というイメージでした。

ただし、メッセージは留守番電話の持ち主だけでなく、誰でも見ることができるのです。



とはいえ、構想だけでなかなか作成には入れなかったようです。




1978年1月中旬、シカゴは猛烈なブリザードに襲われました。

家の外に出るのもままならない状態。もちろん CACHE の集会にも顔を出せません。


しかし、家にいなくてはならないこの時間は、以前から考えていたプログラムを作る良い機会でもありました。



留守番電話のようなコンピューターを作るのであれば、普段使っている者とは別に、電話番専用の機械が必要になります。


ランディは、新しい S-100 コンピューターを組み立て始めました。

ワードは、MITS の 8K BASIC (ビルゲイツが作った Altair 用 BASIC)で、プログラムの試作を開始します。


試作段階では、メッセージはメモリ上にのみ残されました。

しかし、想定していたシステムは順調に動くようです。


ランディはさらにディスクドライブを入手して機械に取り付け、ワードは試作したプログラムを、アセンブラで作り直しました。

メッセージをディスクに残すために、CP/M 上のアプリケーションとなりました。


作業開始は、1月16日。

当初は2週間のつもりで作業していましたが、完成度を高めるためにさらに2週間の追加作業を行います。


そして、1978年の 2月 16日、システムは完成し、お披露目が行われました。


パソコン同士を接続し、メッセージを読んだり、当たらなメッセージをみんなに見せたりできる。

コンピューター化(Computerized)された掲示板(Bulletin Board)のシステム(System)です。


頭文字を取って、CBBS と名付けられました。

世界で最初の、いわゆる「パソコン通信」 BBS と呼ばれるものです。



#C を、彼の属していたサークル CACHE の意味とする説もあるらしいが、彼自身が「CACHE は関係ない」と明言している。




ワードとランディは、自分たちの作成したシステムの概要を、Byte 誌に投稿します。

この記事は、11月号に掲載されました。


記事のタイトルは Hobbyist Computerized Bulletin Board。

記事中では、表記ゆれで Computerized Hobbyist Bulletin Board System になったり、単に Bulletin Board System になったりします。


実際に動作している画面イメージでは CBBS/CHICAGO とあります。


どうやら、これで「Bulletin Board System」、略して BBS 、というのが一般的な認識となったようです。


この後、BBS を名乗るシステムが多数同時発生します。

「パソコン通信」の時代が始まったのです。




ワードの作成したプログラム転送機能、MODEM は、後にプロトコルなどが改良されて XMODEM と呼ばれるものになりました。


後にもっと改良されたプロトコルが作られても、「パソコン通信ソフト」には、XMODEM で転送を行う機能があるのが普通でした。

パソコン通信のホスト側も、クライアント側も、すべてが対応する「最低限の共通プロトコル」だったのです。


#1990年代にはモデムが高機能化し、通信回線の品質も高まっていたので、Flying XMODEM とかありました。…何もかも懐かしい。



多くのパソコン通信は、インターネット接続が一般化した 1990年代にサービスを終了しています。

CBBS も、そのころ運用を終了しました。


しかし、BBS の精神は無くなっていません。

元々 BBS は、「草の根」と呼ばれる、友達や地域の人と話をするための小さなコミュニティが中心でした。


大手企業が運営しているものはあっても、それが文化の中心ではなかったのです。



インターネット時代には、小さなコミュニティは「CGI 掲示板」などの形で残され、現在の SNS にも影響を与えています。




▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

コンピュータ

今日は何の日

別年同日の日記

05年 忙しい一週間・水曜日

15年 「ああ播磨灘」ゲームボーイ版


名前 内容

ウイリアム・ショックレー 誕生日(1910)  2017-02-13 09:59:09  コンピュータ 今日は何の日

▲目次へ ⇒この記事のURL

今日は、ウィリアム・ショックレーの誕生日(1910)


トランジスタ効果の研究により、ノーベル物理学賞を受賞した人です。


トランジスタは、今ではコンピューターの最も基礎的な回路に使われる素子。

彼が研究所を設立した地は、周辺に同業他社が増え、今では「シリコンバレー」と呼ばれています。




ショックレーの伝記とか見ると、どうもアスペルガーだった印象を受けます。

大天才なのだけど、変人で扱いにくい。常に自分が正しいと思い込んでいる。


トランジスタの発明者、として知られているのですが、実は発明者は別の人です。

彼は、発明者もいたグループの「マネージャー」で、彼自身の提案による実験は失敗していました。


でも、自分の失敗したアイディアを改良して成功したのだ、と言い張り、自分こそが発明者だと言い張った。

これで世間からも彼が発明者だと思われるようになってしまい、一緒に研究していた科学者は、彼の元を去っています。


もっとも、誰が発明したかはともかく、それを使いやすく改良し、「現代の形の」トランジスタを作り上げたのは、彼の業績です。

ノーベル物理学賞は、一緒に研究していた科学者との共同受賞でした。




さて、時間を巻き戻して最初から話を進めましょう。


第二次世界大戦は、「無線機」が活躍した戦争でした。

それまでは情報は伝書鳩などで伝えられていましたが、無線によって通信されるようになったのです。


#無線電波は敵側にも簡単に傍受されてしまうので、暗号技術も進みました。

 こちらの話も面白いのだけど、今は関係のない話。



さて、第二次大戦中に問題となったのは、無線機の中で使われる「真空管」の扱いにくさです。


真空管は、無線にとって必要な「整流器」と「増幅器」の両方で使われます。

しかし、ガラス管で作られていて、大きく重いうえに、割れやすいのです。


整流器に関しては、「ゲルマニウムダイオード」の発明により、真空管ではなく、小さな素子をつかえるようになりました。

しかし、増幅器は相変わらず真空管が必要でした。



第二次大戦後、整流器をダイオードに置き換えられたように、増幅器も小さな素子に置き換えられないか、と研究が行われます。

ショックレーの率いるチームでもこの研究を行っていました。


しかし、ショックレーの試してみた方法では、増幅作用は置きませんでした。

その後、別の研究者が、ダイオードに対して3本目の電極をわずかに接触させることで、増幅作用を生むことを発見します。


今では「点接触型トランジスタ」と呼ばれるものなのですが、大発明でした(1947/12)。

大きくて重く、動作電圧が高くて動き始めるまでに「暖機運転」が必要な真空管と同じような動作を、小さく軽く、低い電圧で、すぐ使えるのです。



先に書いたように、ショックレーはこれを自分の発明だと主張します。他の人が発明したのに。

…結局、ベル研究所としてはこの主張を認めず、彼は特許書面に名を連ねることができませんでした。


その後の彼は、いつか自分単独の名前でトランジスタの特許を出す、と公言し、さらなる改良に励みます。



そして、僅か 5週間後に、接合型トランジスタを発明します(1948/1)


点接触型トランジスタは、針が「わずかに接触する」ことが大切です。

作るのにも微妙な感覚が必要で、使っていても壊れやすいものでした。


それに対し、接合型トランジスタは、量産も簡単で壊れにくいものでした。

彼の望み通り、単独の名前で特許出願が行われています。



トランジスタは無線用に開発されたものでしたが、数年後にはコンピューターが作られ始めます

いわゆる「第2世代コンピューター」です。




先に書いたように、ショックレーは人の気持ちを考えない強引な性格で、一緒に研究していた科学者は彼の元を去りました。

マネージャーとしては失格です。ベル研究所でも、彼は昇進できずにいました。


ショックレーは、友人に支援されて「ショックレー半導体研究所」を設立します。


しかし、ここでも彼は傍若無人にふるまいます。

すぐに部下を疑い、脅し、信頼しようとはしません。

そんな環境で良い研究が進むわけがありません。


研究所では、シリコン基板の上に半導体を生成する技術…「集積回路」の作成方法について研究が行われていました。


これは非常に難しい挑戦で、なかなかうまくいきません。

とはいえ、研究者たちの間では「あと一歩で成功する」という確信がありました。


しかし、ショックレーはこの研究の打ち切りを決めます。

これに反発し、8人もの研究者が一斉に研究所を辞め、新たな会社を近くに作りました。


これが、世界初の集積回路を生み出した会社、フェアチャイルド・セミコンダクターです。

この顛末は、ロバート・ノイスの誕生日に書いています。




晩年のショックレーは、人種差別主義者でした。


具体的にいえば、優生学…子孫を残すに値する、頭の良い人間だけが子孫を残せるようにし、頭の悪い人間を去勢すべきだ、という考え方です。


これ自体は「頭の良さ」だけが指標であり、「人種」差別的ではありません。

もっとも、頭の悪いやつは子孫を残すな、と言っていること自体が差別的で、人権無視ですが。



彼は持ち前の科学的な分析能力を使い、さらに論を展開します。


それによれば、子供の数と知能指数の間には相反する関係があるそうです。

つまり、「頭が悪い人ほど子供を多く残す傾向にある」というのです。


さらに、職種や人種による子供の数を比較し、黒人は子供が多い、つまり頭が悪いのだから積極的に去勢すべきだ、という論に繋がります。



これ、統計データとしてはおそらく正しいと思いますが、その理解はおかしいです。

今の日本もそうですが、社会的な地位を高めようとするとキャリアを積む必要があり、晩婚化が進みます。


また、差別や偏見によって地位を高めようがない場合、キャリアを積む必要もないので早婚になり、子供を多く残します。


そして、知能指数は絶対的な「頭の良さ」ではなく、そうしたテストに対する経験も影響します。

キャリアを積んだ人は数字が高く出がち、というだけのこと。



でも、ショックレーはこの主張を行うことが自分の生涯の務め、と信じて、いろいろなところで論を展開しました。

ノーベル賞学者の論ですから、雑誌などでも面白おかしく紹介されるのですね。

もちろん、その考え方がおかしい、ということの揶揄も含めて。


ショックレーはどんどん孤立していき、妻以外の家族と疎遠になっていきます。

彼が死んだとき、彼の子供ですら、死んだことをマスコミの報道で知ったのだそうです。



最初に書いたように、おそらくはアスペルガー症候群。


知能は非常に優れ、世界を変えるような天才性を発揮します。

その一方で、自分だけが正しいと信じ、人の気持ちを察するなんてできない。


世界を変えた人なのに…いや、名声が高まりすぎたが故の、寂しい末路に思います。


▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

コンピュータ

今日は何の日

関連ページ

ハンス・アスペルガー 誕生日(1906)【日記 17/02/18】

別年同日の日記

03年 オロブロンコ

15年 改正風俗営業法の施行日(1985)

16年 BCPLについて、訂正


名前 内容

リチャード・ハミング 誕生日(1915)  2017-02-11 16:10:54  コンピュータ 今日は何の日

▲目次へ ⇒この記事のURL

今日は、リチャード・ハミングの誕生日(1915)


プログラミング…というより、情報理論をやったことのある人は、「ハミング符号」を聞いたことがあるかもしれません。

その考案者です。


他にも、ハミング距離やハミング重み、ハミング窓やハミング数など、彼の名がついた概念は多数。


ハミング符号については後で説明しようと思いますが、ハミング距離・重みは、ハミング符号に関連した概念。


ハミング窓は、通信における周波数特性などの問題改善に役立つ概念。

(応用は幅広いのですが、例えばインターネットで高速な通信ができるのは、こうした概念のおかげです)



ハミング数は、1,2,3,5 の掛け算だけで作られる数。

1,2,3,4,5,6,8,9,10,12,15... などです。


10,12,60 などを含むため、よく使われる「 n 進法」との相性が良い数値になります。


実は、昔からこれらの数は特別視されていたのですが、ハミングが「効率よくこれらの数字を作り出すアルゴリズムを求めよ」という問題を出したため、ハミング数とも呼ばれるようになりました。


#この問題に対する最初の一般解は、ダイクストラが出したようです。




さて、ハミング符号について説明しましょう。

大学の時に情報理論の講義でこれを知って、感動しました。



1980年代のパソコン少年にとって、「チェックサム」は見慣れたものでした。

雑誌に載っているプログラムには数値データが延々と続く場合があって、入力の際にどこか1カ所間違えただけで、プログラムは動かなくなってしまう。


でも、人間だから打ち間違いは当然生じます。


このミスを防ぐのがチェックサム (check sum) で、当時の雑誌プログラムではお馴染みでした。

sum は「集計」の意味。数値を全部足したものです。


例えば、メモリ上の 16進数を延々と打ち込むのだとしたら、16byte ごとに「全部足して、下1byteだけを取り出した数値」がついている。

数値を打ち込むためのツールの方にもチェックサムを表示する機能があるので、合っていれば打ち間違いはありません。


でも、打ち間違いがある、とわかった時には、どこが間違っているのかを自分で探し、訂正する必要がありました。




同じように「パリティ」という概念もあります。

こちらは、1byte とか 1word の範囲内でのチェックサムのようなもの。


1byte は 8bit ですが、この 8bit を、すべて XOR します。


XOR っていうのは、「2つのビットが違っていれば 1、同じなら 0」という単純な計算で、回路も簡単に作れます。

これを、8bit 分全部行います。


結果は「8bit 中、1のビットが奇数個あれば 1、偶数個なら 0」です。

この結果を「パリティビット」と呼びます。9bit 目として保存しておきます。


再びこのデータを使うときにも、同じようにデータ部分からパリティビットを求め、保存してあった結果と比較します。

合っていれば、データは壊れていません。大丈夫。


壊れていたら? …コンピューターに異常があった、と信号を出して、緊急停止でしょうね。

計算はやり直しですが、間違った計算を延々と続けて気づかない、というよりは良いでしょう。



このやり方だと、8bit のデータごとに 1bit のパリティが必要になります。データを保持する、という意味では、1/9 の無駄。

でも、16bit で 1bit のパリティ、でも構いません。それなら無駄は 1/17 です。


ただし、間違いが起きた個所を特定したい、と考えたときには、「8bit のどれか」まで絞り込めるか、「16bit のどれか」になるか、という違いがあります。

無駄を少なくすると、場所の特定はしにくくなるのです。




ここら辺までは「間違いがないかチェックしよう」という話です。

でも、ハミングが考案した「ハミング符号」(1950)はちょっと違いました。


「間違いがあるなら、直すところまでやってしまおう」というのです。


ハミング符号では、全体の長さに決まりがあります。

必ず、2^m-1 bit にならなくてはなりません。


7 とか 15 とか、今のパソコンで扱うにはちょっと中途半端な単位。

そして、この長さの中に「データ」と「誤り訂正符号」が入ります。


誤り訂正符号の長さは、m です。ということは、全体から mを引いたのが、使えるデータ部分。


全体が 7bit の場合、データが 4bit 、全体が 15bit なら、データは 11bit になります。




話を簡単にするために、ここでは 7bit で考えてみます。


データは 4bit あるので、それぞれのビットに小文字で名前を付けます。

abcd 、としましょう。


誤り訂正符号は 3bit なので、ABC とします。


誤り訂正符号は、全体の中の 1,2,4,8 ... 番目に入っているとします。

全体のビットの並びはこうなります。


ABaCbcd


これで 7bit です。



a は、3番目、2進数で書くと 011 番目に並んでいます。

b は、5番目、2進数で書くと 101 番目です。

c は、6番目、2進数で書くと 110 番目です。

d は、7番目、2進数で書くと 111 番目です。


A は、並び順の最下位ビット…1の位が 1 だった部分のビットのパリティです。

B は、2の位が 1だったビットのパリティ、C は、4 の位が 1 だったビットのパリティです。


XOR を + で表現することにすると、


A = a+b+d

B = a+c+d

C = b+c+d


となります。


これで計算終了。簡単です。




データの 4bit が、 1010 だったとしましょう。

全体の 7 bit は、次のようになります。


1011010


どこか 1bit がおかしくなったとしましょう。

例えば、先頭がおかしい。


先頭は誤り訂正符号ですから、データ部に影響はないです。

そして、データ部から「誤り訂正符号」を求め直すと、パリティ A が間違っている、ということが分かります。


ここで、A が 1の位、B が 2の位、C が 4の位の2進数(つまり CBA と並んでいる)と考えます。

「違った部分」を 1 、正しい部分を 0 として考えると、2進数で 001 という数値が現れます。


これが「1番目のビット」、つまり A が誤っている、という意味になるのです。



今度は、データ部分である a が間違っている、と考えましょう。

誤り訂正符号の計算式をもう一度書きます。


A = a+b+d

B = a+c+d

C = b+c+d


a の部分がおかしいのですから、A B が変化します。

すると、誤り訂正符号は 011 番目…つまり3番目のビットがおかしいことを示すようになります。


3番目のビットというのは、まさに a のことです。

bit の値は 0 か 1 しかないので、「誤っている」のであれば、反転すれば訂正できます。


これで訂正完了。

同じように、どこのビットを変えても、正しく誤りの位置を示します。




数学的に検証してみると、A B C はそれぞれ、ただのパリティにすぎません。

しかし、パリティを取る bit を巧妙に絞り込んであります。


そのため、A B C の誤り検出が、そのまま誤りの「位置」を示せるようになっているのです。

これにより、ハミング符号では、1bit が間違えていても正しく訂正できます。



ここでは、全体が 7bit でした。

誤り訂正符号は 3bit だから、8つの状態があるのだけど、エラーがない場合は「0」になるので、位置を示すのには使えない。


だから、残りの「7つ」の状態で、7bit の位置を示すのです。

これが、全体が 7 とか 15 とか、中途半端に見える長さになってしまう理由。



2進数の性質をうまく使い、非常に巧妙にできています。

大学生の時にこれを知り、ちょっと感動しました。




ちょっと話は違うのですが、室町時代から伝わる手品で、「目付字」というものがあります。

後から知ったのですが、これが、2進数の性質を巧妙に使ったもので、知った時に「ハミング符号」を思い出しました。


本当に、全く目的は違うし、やっていることも違う。

だけど、2進数の性質を同じように応用したトリック。


詳しく知りたい人は、上のリンク先を読んでみてください。

こういう数学トリックを思いつく人はすごいなぁ、と思います。




ハミング符号では、2bit 以上間違えると、誤りを訂正しようとして失敗します。


これを防ぐ「拡張ハミング符号」というのもあります。

「1bit のパリティを付加し、誤りが 1bit か 2bit かを検出できるようにしたもの」です。


長くなるので詳細は省きます。これ以上知りたい人は自分で調べて。



今ではハミング符号よりも巧妙でよくできた誤り訂正符号もあります。


でも、誤りの「検出」しか考えられていなかった頃に、最初に「訂正」という概念を作り出したのは、ハミング符号なのです。

最初にやってみせた、というすごさは、いつまでたっても変わりません。




▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

コンピュータ

今日は何の日

別年同日の日記

03年 海のチーズケーキ

04年 衝動買い

16年 世界で最初の{弓括弧}


名前 内容

西和彦 誕生日(1956)  2017-02-10 09:40:30  コンピュータ 今日は何の日

▲目次へ ⇒この記事のURL

今日は、西和彦さんの誕生日(1956)


日本のパソコン黎明期を支えた人です。

日本のみならず、世界的な影響も与えているのだけど。



とにかく、行動力があります。動かなくてはならないタイミングを逃さない。


日本で TK-80 が発売されたとき、数年前にアメリカでおきた「Altair 8800」と同じ現象が起きる、と直感します。


知人らと共にアスキー出版を設立し、パソコン情報誌の「アスキー」を創刊。

そして、次に必要なのは BASIC だと考えます。


すぐにアメリカにとび、Altair BASIC を作っていたビルゲイツをつかまえ、自分をマイクロソフトの極東代理店にに認めさせてしまう。

…ゲイツの証言によれば、英語が下手で会話にならない日本人がやってきて、「とにかく俺を日本担当にしろ」の一点張りなので、とりあえず帰ってもらうために承諾したのだとか。強引です。


西は、「アスキーマイクロソフト」を設立。社長になります。

さらにその後、マイクロソフトの副社長も兼任します。


でも、これでマイクロソフトは「アメリカの小さな企業」から、世界企業へはばたく足がかりを得ます。

西が、日本で次々と BASIC 開発の仕事を取り付けてきたのです。


日本電気(のちの NEC)の PC-8001/8801、新日本電気(のちの NEC ホームエレクトロニクス)の PC-6001、富士通の FM-8/7 、日立 BASIC MASTER 、沖 if800…


日本のパソコン黎明期に登場したライバル同士ですが、「マイクロソフトの BASICを搭載する」という共通点がありました。


#他にもありますが、代表的なものだけ。

 なお、SHARP の MZ / X1 は独自の BASIC を搭載していました。



PC-8001 などは、NEC の作成する機会に対して BASIC を供給する契約でした。

しかし、if800 などでは設計方針などの重要な会議にも参加していますし、後のハンドヘルドマシン、NEC PC-8201 / Tandy TRS-80 Model 100 などは、設計からすべてを行い、京セラが製造し、販売会社を見つけて売り込んだものです。


#NEC と Tandy のマシンは、ほぼ同じハードウェアで、BASIC などには違いがある。


これだけでも、当時の西の影響力の大きさがわかります。




マイクロソフトを本当に大企業に押し上げたのは、IBM への BASIC と OS の供給でした。


当時のマイクロソフトは、ほぼ「言語専門」の会社。

IBM からの依頼は、BASIC でした。しかし、FORTRAN と COBOL と Pascal も必要としている、と知り、それら全部を供給する契約を結んだのです。


まだ小さなマイクロソフトにとって、これだけでも期日に間に合うか不安な契約。

でも、さらに IBM が OS の供給先を探していると知った時、西がその契約もマイクロソフトで取ろう、と言い出します。


ビル・ゲイツは猛反対したようですが、最終的に西の熱意に負け、IBM に「OS も供給できる」と連絡を入れます。



現在マイクロソフトは巨大企業ですが、このときに西が副社長をやっていなければ、そうはならなかったわけです。




西は日本のパソコン業界に顔が広く、多くのパソコンの構想に関与しました。

先に書いたように、PC-8201 / Tandy TRS-80 Model 100 などは、マイクロソフトとアスキーが設計し、京セラが製造し、各社のブランドで販売されました。


このようなOEM(相手ブランドでの製品供給)の先に、基本設計を共有しながら各社が特色のある互換機を作る、という構想が生まれます。


MSX パソコンの登場です。もちろん、BASIC はマイクロソフト製でした。

もっとも、マイクロソフトは名前を貸しただけで、ほとんどアスキーで作成したそうですが。


#マイクロソフトは、このころすでに 16bit 向け BASIC に軸足を移しつつあり、今更 8bit をやるつもりはなかった。

 ただ、MSX の成功を「傍観」したことで、標準化ビジネスの旨味に気付き、以降 OS の機能拡充により「機種差を吸収し、標準化する」戦略を取り始める。




その後、マイクロソフトの株式公開を機に、西はマイクロソフト副社長を解任されます。


西はマイクロソフトが半導体事業も手掛けるべきだと考えていて、一方ゲイツはインテルと盟友関係にあるので、インテルの市場には手を付けるべきではないと考えていました。


アスキーもマイクロソフトもともに大企業となり、「企業として競合関係にある」ことも兼任を難しくしていたようです。


アスキーマイクロソフトも、マイクロソフトの日本代理店ではなくなりました。

大きな仕事を失ったことで、この後親会社のアスキーにも影響を与えます。




この後はパソコンの歴史というよりは「アスキーの顛末」になってしまうので、話はここらへんで終わりにしましょう。



西さんの人生については、ご自身のページで書かれている年表が詳しいですし、失敗談なども赤裸々に書かれていて面白いです。


また、西さんのページには作成に関わったパソコンなどの一覧もあります。



▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

コンピュータ

今日は何の日

別年同日の日記

03年 大人の社会科見学

05年 さて困った

08年 浄水器

13年 10年ぶりの更新


名前 内容

ボブ・バーマー 誕生日(1920)  2017-02-08 10:05:55  コンピュータ 今日は何の日

▲目次へ ⇒この記事のURL

今日はロバート・ウィリアム・バーマーの誕生日(1920)

愛称は「ボブ」。Robert は一般に Bob になります。


#Rob なのだけど、R の音は発音しにくいので、変化させて B になる。




さて、ボブは ASCII の父として知られています。



以前、世界で最初に { } (弓括弧)を使えたマシンは何だろう、という疑問を調べたことがありあす。


今は、非常に多くのコンピューター言語が、{ } を使います。

これらの最初は BCPL という言語だ、ということになっています。


だけど、昔のマシンでは { } は使えませんでした。

BCPL は { } を使ったというけど、その時代のマシンでなぜ { } が使えたのか? という謎を追ったのでした。



実は、この過程で昔のコンピューターで使える文字セットに興味を持ち、言語との関係や変遷をまとめたのだけど、まだ記事にしていません。

いつか記事にしたいのだけど、タイプライターと文字セットと言語と…と、密接な話題が入り組んで整理しにくいの。




それはさておき、昔のコンピューターにはタイプライターが接続されていました。

そして、タイプライターは活字を持たなくてはならない都合上、それほど多くの文字を扱えませんでした。


これらのタイプライターは「テレタイプ」と言って、操作を紙テープに残せました。

このため、「文字コード」も持っているのですが、各社でバラバラ…いや、場合によっては同じ会社でも互換性がありません。


そこで、統一コードが作られます。これが ASCII です。


当時のタイプライターの紙テープは、5~6bit 記録でした。

しかし ASCII は 7bit として制定され、今までよりも多くの文字を使えるようになったのです。



そして、ボブ・バーマーは ASCII の定義委員の一人でした。

彼は { } や ⃥(バックスラッシュ)、制御コードとしての「ESC」など、多数の文字を入れるよう提案を行っています。


これらの文字は、単に「入れたいから入れよう」というような話ではなく、よく考えて決められています。


当時は、ALGOL が「最良の言語」でした。そして、 ALGOL では、論理演算に ∧ ∨ という数学記号を使います。

だから「それらの文字を入れるべきだ」という意見も出ていました。


しかし、ボブは、すでに入っている / (スラッシュ)に ⃥ を組み合わせれば、論理演算記号を表現できる、と提案したのです。


一部の言語しか使わない文字ではなく、より普遍的に使える文字を入れる。

長く使われる「標準セット」には大切な考え方でした。



そして、ESC は特に重要な提案でした。


ASCII では、「文字コード」を定めようとしていましたが、それは各社のタイプライターの差がなくなってしまうことでもありました。

タイプライターメーカーとしては、新機能を搭載しづらい…業界の進歩が止まってしまうことになります。


ASCII を決定したとしても、いつか新機能を搭載したがったメーカーが「新しい文字コード」を使い始めるかもしれません。

それでは標準コードの役に立たないのです。


ESC は、この問題を解決する素晴らしいアイディアでした。

ESC 文字コードが送られてくると、タイプライタは、ASCII 文字コードから「ESCAPE」…脱出できます。


ESC に続いて送られてきたデータを自由に解釈し、タイプライターメーカー独自の機能を追加できるのです。



ビデオ端末が登場すると、この機能により自由な位置に「カーソル」を動かしたり、文字に色を付けたりできるようになりました。

これによって、初期のテレビゲームや、ワープロなど…「グラフィカルな」ソフトウェアが作られ始めます。


もし ESC が無かったら、端末は文字しか出せないままで、コンピューターの利用用途はずっと限られていたでしょう。



このことから、ボブは「ASCII の父」と呼ばれるのです。


彼は 2004年に亡くなっていますが、彼の作っていた WEB ページはそのまま保持されています。


そのページから、写真を引用させてもらいます。

彼の乗っていた車のナンバーは「ASCII」でした。




ボブは、IBM 、ハネウェル、UNIVAC など、コンピューター黎明期の大メーカーを転々としながら働いています。

ASCII コードの定義委員をやっていたのも、IBM の代表の一人として。


IBM が FORTRAN (1956) を発表した後、ボブは彼自身のプログラム言語を考案しています。


FORTRAN は科学者向けの「数式 ( FORmula) を変換する (TRANslate) 」言語でした。

これに対し、仕事 (COMmercial) でつかえる言語、COMTRAN (1957) を作ったのです。


COMTRAN は普及しませんでしたが、これをベースとして COBOL (1959) が作成され、広く使われるようになりました。




この当時、メモリは貴重でした。

そのため、日付などを入れる際に、1957 年を 57 というように表記するのも当たり前でした。


しかし、これは良いやり方ではない、とボブは気づきました。

このままでは、上の桁が変化する 2000 年には、多くのソフトが誤動作するに違いない。



この指摘を行ったのは、1971 年でした。

2000年問題の危険性の指摘でしたが、当時としては「30年も先に、今作っているプログラムが使われているわけがない」と誰も相手にしなかったようです。


実際には、古いシステムは「誰も完全な動作を把握できていない」ために更新されることなく、使われ続けました。

そして、彼の指摘通り、1990年代後半に社会的な問題となるのです。



彼はこのときにも、2000年問題の対処を再び考えています。

すでにソースコードが失われ、実行バイナリしかないソフトに対してパッチを当て、「50以下は +100 してから比較することで、年の順序を間違えないようにする」というような解決方法でした。


…実際に、これで延命された古いシステムが多数あります。

2050 年に問題が起きるかもしれません。


#さすがにそれまでにはシステムが更新されている…と思いたいが、彼が指摘した 30年後に、実際に 2000年問題は起きたのだ。

 2050年も、あと 33年しかない。



▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

コンピュータ

今日は何の日

別年同日の日記

07年 Roomba を修理

10年 かわいくて おっきいの!

10年 ヒーローごっこ

15年 はじめてIKEA行った


名前 内容

ゲーム会社の仕事  2017-02-08 09:58:55  家族

▲目次へ ⇒この記事のURL

長男が、学校の課題で「自分の人生をまとめる」ということをやっている。


もちろん小学6年生の過ごした「人生」なんて短いのだけど、今後のことは想像してある程度大人になるまで作るらしい。

つまりは、もうすぐ中学生になる子供に対して、将来について考えるきっかけを与えるのが狙いなんだな。



で、長男から「インタビュー」された。


今、長男が興味を持っているのは、テレビゲームで遊ぶことと、Scratch でゲームを作ること。

将来の職業を「ゲームプログラマー」にしたいのだけど、どんな仕事か実感がわかないらしい。


僕は実際にゲームプログラマーだったので、仕事がどういうものか教えてほしい、とのことだった。




ある程度は教えたのだけど、雰囲気とかは簡単に伝えられるものではない。

そこで、アニメ「NEW GAME!」を見せてみることにした。


放映されたのは半年ほど前だね。原作は読んだことないから知らない。

僕自身は、Amazon Prime Video で無料で見れたので、3か月くらい前に見た。



大人向けの深夜アニメなので、子供向けでない表現もある。

と言っても、女性のパンツ姿が出てきたり、その程度。まぁ、見せてもいいだろう。


流行したアニメだからこそ、いろいろと批判している人もいる。

でも、「基本的に男性がいない世界」であることを除けば、ゲーム会社のお仕事としては大体あってる、という認識。

(多少時間の流れに疑問はあるけれど、些細なこと)



人物描写とか、極端な人物が多いのだけど、いちいち会社に実際にいた人の名前が思い浮かぶ感じ。

だからこれも「ゲーム会社にいる人としては、大体あっている」という認識。


机の下で寝袋で寝てる人はいたし、机がおもちゃだらけの人もいた。

天才肌で、自分と同じようにできない人を見下す態度の人もいた。


僕が知っているのは全部プログラマーだけども。



長男の宿題の都合もあって、12話を1週間で見なくてはならなかった。

で、わからないと質問された部分とか、ここはゲーム関連の仕事として掘り下げて説明したほうがいいな、と思った部分とか、1話見終わるごとに説明を加えた。




長男の課題では、将来の職業を漠然と書くのではなく、それがどういった仕事なのかも細かく掘り下げないといけないらしい。

ゲーム会社の仕事の内容を大体理解した長男は、そうしたことを説明したうえで、自分はプログラマーになりたいと作文した。


そしたら、先生から「プログラマーの仕事」についてもう少し掘り下げるように、という指摘が入った。

それで、長男にまたインタビューされる。プログラマーの仕事を一言で表すと、どういうこと?


「コンピューターに作業の手順を教える仕事、かな」



…と答えたのだけど、しばらく後に、この答えは間違えていると思ったので、訂正した。


コンピューターに作業の手順を教えるのは、プログラマーではなく、コーダーの仕事だ。


「コンピューターの作業手順を考える仕事」


これがプログラマーの仕事。「教える」のではなく「考える」ことが大切。


そして、プログラマーが考えた作業手順を、コンピューターに教えるのがコーダーの仕事。

だけど、これは非常に古い仕事の区分で、現在ではコーダーの仕事もプログラマーの仕事の一部になっている。




「教える」のか「考える」のか。この違いは、プログラマーとして非常に大切だ。

そして、この違いを理解できないといろいろな勘違いが起きる。



数年後、日本ではプログラム教育が必修化される。

ここでの目的は、子供たちに「考える」力を養わさせることだ。


しかし、プログラムを「教える」ことだと思っている人たちが、勘違いしている発言を度々見かける。


Cか Python か Scratch か、なんてどうでもいい。それはコーダーの技術だ。

学校で教えたいのは、処理手順を「考える」ことで、それこそがプログラムの本質だ。



先日「コピペプログラマー」の話を書いた。

こちらは、プログラマーだと呼ばれてしまうから違和感があるだけで、コーダーだと思えば何の問題もない。


処理を考えることはできないけど、教える技術はちゃんと持っている。

だから、どこかにあるコード断片を拾ってきて、正しく改造して、目的通りのものを作り上げられる。


「考える」ことは出来なくても「教える」ことができるのだから、コーダーと考えればしっくりくる。




長男からは、ゲームプログラマーをしていて、何が一番うれしかったか、という質問ももらった。


「笑顔が見たい」からゲームを作っていた、と答えた。

どんな仕事でも、最終的にはお客さんの笑顔を見たくてやっているのではないかな。



でも、これ実は微妙な話だ。


大学の頃は、大学祭にゲームを出品して、お客さんの反応を見ることができた。

それがうれしくて仕事にしたのだけど、仕事だとお客さんから直接の反応をもらうことは難しくなった。


それでも、ゲームセンターで自分が作ったゲームを遠巻きに観察していたり、ゲーム雑誌の読者投稿で自分の作ったゲームのことを触れてくれる人がいたりすると嬉しかった。


今だって、ネットで昔作ったゲームのことが書かれているのを見つけると、嬉しくなる。

それがたとえ悪口でも構わない。本当に嫌いなら、わざわざ労力を割いて話題にしないだろうから。



▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

家族

別年同日の日記

07年 Roomba を修理

10年 かわいくて おっきいの!

10年 ヒーローごっこ

15年 はじめてIKEA行った


名前 内容


戻る
トップページへ

-- share --

0020

-- follow --




- Reverse Link -