目次
前のページ
2016-01-29 AI囲碁
2016-02-11 世界で最初の{弓括弧}
2016-02-13 BCPLについて、訂正
2016-02-14 クリストファー・レイサム・ショールズの誕生日(1819)
2016-02-17 トーマス・J・ワトソン 誕生日(1874)
2016-02-29 ハーマン・ホレリス 誕生日(1860)
2016-02-29 関数電卓
2016-03-09 クララ・ロックモア 誕生日(1911)
2016-03-11 オーレ・キアク・クリスチャンセン 命日(1958)
2016-04-12 電話番号のしくみ
2016-05-12 キーボード
2016-05-22 JAMSTEC 一般公開日
2016-06-24 【訃報】長谷川五郎さん
2016-07-22 携帯関連アイテム2点
2016-08-03 カシオミニ 発売日(1972)
2016-08-12 極楽パイロット
2017-03-08 ラルフ・ベア 誕生日(1922)
2017-03-10 QV-10 発売日(1995)
2017-03-15 世界最初のドメイン登録(1985)
2017-04-19 地図の日
次のページ
Google が作った囲碁プログラム (AlphaGO) が、ヨーロッパチャンピオンと対戦して勝利したそうだ。
昨年秋に対戦したらしいのだけど、ニュースになったのは昨日。
囲碁はチェスや将棋に比べてずっと難しいので、このニュースにはちょっと驚いた。
でも、なんで囲碁が難しいのか、という話に触れている記事を見かけない。
(僕が探せていないだけかもしれないけど)
ちょっと解説してみよう。
まず、僕は囲碁についてそれほど知識を持っていない。
ルール詳細すら知らず、「陣形を作るゲーム」であることは知っている、という程度。
以前に将棋について少し書いたのだけど、将棋も囲碁も、シミュレーションゲームだ。
将棋は、局所戦…小さな戦いを表現している。駒が人で、人と人が殺しあう。
#日本の将棋は、殺さずに捕虜にして、仲間にすることができる。
それに対して、囲碁は国家レベルの戦略をシミュレートしている。
局所的な戦いは関係ない。そもそも、国家レベルの戦いでは、実際の戦闘がおこらない「にらみ合い」が多い。
お互いににらみ合い、前線を形成しつつ、相手の補給路を断つ。
補給路を断たれた相手は降伏するなり野垂れ死ぬなどして、いずれその領地は自分のものとなる。
こうして、前線で相手を囲い込みながら領土を広げるゲームが「囲碁」だ。
ここで、ゲーム性が大きく違うことに気づいただろうか。
将棋もチェスも、駒を動かして、相手を取る。
つまりは、「点」から「点」への動きだ。
ある地点の駒を別の地点に動かせば、相手の駒をとれる。
もしくは、自分の駒を動かさないと、相手にとられる。
盤面がいくら広くても、駒の数は有限だ。
その駒すべてについて、動かせる手を全部試すことは、実はそれほど難しいことではない。
…チェスならね。
いや、本当はチェスだって全部なんて試せないのだけど、それは後で書く方法でカバーできる。
ともかく、チェスの動きはそれほど多くはない。
特に、終盤に向かって駒が減っていくので、先読みが簡単になっていく。
チェスを指す機械が作れるだろう、という考えは、コンピューター以前からあったくらいだ。
将棋は、取った駒をいつでも盤上に投入できる。
これにより、盤上の駒が少なくなる終盤は、駒を「動かす」のではなく、どこでも好きな位置における、という可能性が高まる。
これによって、終盤に向かって複雑さがどんどん増していく。先読みが難しくなっていく。
チェスより将棋のほうが難しい、というのはこのためだ。
囲碁は、石を「好きなところに置く」ことの連続で、動かさない。
また、相手の上に乗る、というようなこともない。
相手の動きを阻止するために「すぐ横に置く」ことは多いのだけど、これも絶対ではない。
状況によっては、全く異なるところに置くことがある。
つまり、自分も相手も、石を置く場所の手がかりがない。
手がかりがないからどこに置いていいのかわからないし、相手がどこに置くのか読みづらい。
これが、囲碁の難しさの一因になっている。
google もルールから説明するのは面倒だからか、単純に「盤面の広さ」から、取り得る局面の数を示して「囲碁は非常に大きい」と言っている。
チェスは 8x8で、将棋は 9x9 、囲碁は 19x19 だから、囲碁は圧倒的に「取り得る局面」は多い。
でも、局面の多さが難しさを示すのだとしたら、同じく碁盤で行う五目並べも、囲碁と同程度に難しいということになってしまう。
盤面の大きさが難しさにつながる部分は確かにあるのだけど、それほど重要ではない。
本当に囲碁が難しいのはここからだ。
先に書いたように、将棋は「点から点」の動きだった。
でも、囲碁は「線で囲む」ゲームだ。より正確に言うと、線を「形作っていく」ゲームだ。
人間なら、星と星をつないで星座を作ることができる。
「点」をつないで線を「形作り」、そこに絵や物語を見出すのだ。
でも、コンピューターはそんなことできない。点はいつまでたっても点であり、線になることはない。
点を伸ばしてやがて前線を作り、相手を囲い込む…というゲームは、コンピューターにはどこに手を打つべきかもわからない。
もちろん、石と石の間が1マス開いていたら、そこに石を置いたらつながるな、程度の判断ならできる。
でも、5マスも離れていたら、そこを埋められるかもしれない、なんて思わない。
同じような局面が多数あった時に、どちらのほうがつながりそうだ、とか判断できない。
「判断できない」というのは、非常に致命的な問題をもたらす。
話は戻るだけど、チェスや将棋は、駒が有限だから動かすことは簡単、と書いた。
でも、もっと重要なのは、「意味が分かりやすい」ことだ。
駒が相手の駒に乗れば、取ることができる。乗られれば取られる。
できれば取られないのが一番いい。でも、歩を犠牲にすることで王を守れるのであれば、王を優先して守ったほうがいい。
こうした「手の評価」が簡単にできる。
手の評価ができるからこそ、駒の動きをいくつも試してみて、「一番いい手」を選び出すことができる。
将棋の場合、数手先まで読んだりする。
でも、「1手」でも、動かせる駒は非常に多い。そのまま2手、3手と先読みすると、そのたびに駒の数だけ動かせる可能性が増えて、調べきれなくなる。
この場合も、「手の評価」を使うことで、大幅に可能性を減らすことができる。
王手がかかっているのに、無視して別の駒を動かす必要はない。自分の王がとられるのは最悪の結果なのだから、とにかくそれを防ぐ手を考える。
それ以外の手を採用する必要はないので、先読みすべき手を大幅に減らすことができる。
王手は極端な例なのだけど、自分がわざわざ悪い手を打つ必要はないのだ。
同様に、相手も悪い手を打つ必要はない。これで、先読みの「可能性」を大きく減らすことができる。
最終的に一番いい手を選ぶにも、先読みをするのにも、とにかく「手の評価」が大切なのだ。
ところが囲碁は、基本である「どうやれば線がつながるか」がわからない。
繋がりそうな箇所がいくつかあったとして、どれを優先すべきかわからない。
つまり、もしコンピューターが超高速で、すべての手を総当たりで試せたとしても、その結果から「一番いい手」を選び出せない。
ここが囲碁の難しさの本質だ。
何がいい手なのか。
これ、実はコンピューターだけでなく、人間にもわからない。
もちろん慣れた人にはわかるのだけど、初心者にはとっかかりがなさ過ぎて入門しづらい。
囲碁人口が少ない理由の一つだ。
同時に、わかっている人にとっては、単純ではない、非常に奥深いゲームとなる。
余談なのだけど、米国のゲーム会社…ビデオゲーム業界を生み出した「ATARI」社の社名は、囲碁の用語「あたり」からきている。
子会社に SENTE 、TENGEN という会社もあった。これも囲碁用語の「先手」「天元」からきている。
ATARI 社の創始者が、囲碁を「世界で一番面白いゲーム」だと考えていたことに由来する。
唐突だけど、大学の時のコンピューターサークルの先輩が、卒業研究に「コンピューター囲碁」を考えていた。
90年代の頭かな。
今調べたら、このときには後で書く GNU GO がもうできていたようなのだけど、今と違ってネットは普通ではなかったので知らなかった。
で、コンピューターにルールを教えることすらできない。
「コンピューターに囲碁を教えるのは何が難しいか」という、失敗談をまとめるのが精いっぱいだった。
学生が1年間で研究するには、ちょっと荷が重かったテーマなのだ。
で、GNU GO なのだけど、これ以前にも囲碁ソフトがなかったわけではない。
でも、GNU GO は、GNU だからソースを公開していた。他の人が研究して、さらに強いものを作る土台となった。
GNU GO は、少なくとも「全く無意味ではない」手を打てる程度には囲碁のルールを学べていた。
手を考えるときは、碁盤を配列として用意し、数値を入れられるようにしておく。
石が置いてある「周囲」のマスに、+1 する。すべての石について行う。
これが第1段階。
すでに数値が入っているところを、すべて +1 する。
そして、数値が入っているマスを石と同じように見なして、また「周囲」を +1 する。
これが第2段階。
以降、同じ操作を繰り返し、数値を大きくしていく。
石の周りに「濃度」を持つ勢力範囲が染み出していく…そんな雰囲気を感じ取ってもらうといい。
何段階行うかは任意。というか、その時によって最適な回数は異なるので、状況を見ながら調整。
5段階までやったとしたら、最後にすべてのマスの数値から、5を引く。
マイナスになるところは 0 だと考えて無視。
石の周囲に増やした数字は、0 に戻るはず。
でも、「周囲を +1」した時に重なっていた部分は、重複してカウントされているので 0 に戻らない。
ここはつまり、周囲の石の間を埋めて、前線を作るのに役立ちそうな場所、ということになる。
これで、少なくとも「石を打つとよさそうな場所」がわかる。
複数ある場合にどう評価するか、状況によって全く新しいところに打たないといけないときにどうするか、などは別問題。
ともかく、GNU GO がこの手法を広めて、しばらくはこれ以外の良い方法がなかったらしい。
90年代の中ごろ、画期的なアルゴリズムが考案される。
どこに打てばいいのかわからないなら、乱数で打てばいいじゃん、という割り切り。
もちろん、本当に乱数だけで勝負していたら、とんでもなく弱い。
ここに「学習機械」を組み合わせる。
ランダムに打った手のデータを覚えておいて、とにかく、むちゃくちゃなうち筋でもいいのでゲームを終了させる。
(ランダム同士で打ち合えばいい)
ゲームが終われば勝敗がわかる。きっと、負けたほうの「ランダム」は弱い手だ。データは覚えているから、同じような局面になった時には避けよう。
逆に、勝ったほうの手は、同じような局面ではまだ使おう。
これをひたすら繰り返すと、強そうな手と弱そうな手がわかってくる。
あるとき勝った手が、同じ局面で別の時に打ったら負けたとする。
この手は強いと思っていたけどそうじゃなかった、ということだ。
逆に、何回も打ってすべて勝った手があったら、これは本当に重要な手なのだ。
今後も同じ局面では打つのがいい。
ここにあるのは、ひたすら過去のデータを積み上げるだけで、打った手の評価は「しない」という方針だ。
囲碁の手の評価は、先に書いたように難しい。だったら、評価しないでもいい。
でも、最後に勝ったかどうかだけは覚えておいて、途中の手すべてに「勝ち負け」のフラグを積み重ねていく。
…これ、マッチ箱エンジンだよね。
ただのマッチ箱でも、マルバツゲームの思考ルーチン程度は作れてしまう、というアルゴリズムの実験。
もちろん最初は弱かった。
でも、2006 年に、この手法をさらに応用して学習部分を強くしたプログラムが作られる。
ひたすら戦って「勝った」「負けた」を記録するだけではなくて、勝った打ち筋なら、途中から手を変えたらどうなるか、などを試すようにしたのだ。
これによって、勝てそうな局面で、さらに強い手を探すことができるようになった。
このプログラムは、コンピューター囲碁大会で優勝した。
以降、この手法が主流になっていく。
実は、こういう「ランダムを使ってひたすら学習する」のは、囲碁の世界に限った話ではない。
最初のほうに書いたけど、チェスや将棋では、一手ごとに「その手が良いか悪いか」を評価している。
この評価部分は、昔は人間が作っていた。そして、評価方法の善し悪しが強さに直結した。
評価方法の善し悪しというのは、つまりパラメーター調整のことだ。
昔は職人芸でプログラマがやっていたのだけど、最近の流行は「ランダムに設定したパラメーターでひたすら戦わせ、勝ったものだけを残す」というような手法だ。
これにより、コンピューターが自分で最適なパラメーターを学習するようになった。
評価方法の調整は職人芸の時代から、コンピューターオートメーションの時代に入ったのだ。
そして、囲碁でもそれが適用された、に過ぎない。
元々評価手法自体が作りづらかったので、思い切って評価をしないことにした。
評価は、試合結果によってのみ決まる。
そして、ひたすら試合を繰り返して、結果から学習する。
機械が勝手に学習したものなので、機械が「良い手」だと思っているものが、なんでいい手なのかは誰にも説明がつかない。
でも、実際強くなったのだからいい手なのだろう。
今回プロに勝ったという Google の囲碁プログラムも、こうして作られたものだ。
何で勝ったのか、どういう仕組みで考えているのかは誰にもわからない。
わかるのは、強くなったという事実だけだ。
今回の Google のプログラムでは、学習部分にニューラルネットワークを使っているそうだ。
ニューラルネットワークは、十分な学習を積んだ場合に、まだ見ぬ問題であっても「正解に近いと思われる回答」を得られる特徴がある。
以降は、詳細が明かされていないので想像に過ぎない話。
単純に「過去に打った手」を参照するのではなく、盤上の局所的な形勢などを見て、それらしい正解を出せるように学習させてあるのではないだろうか。
囲碁は「線を形作る」と最初のほうに書いたのだけど、これはパターン認識の世界だ。
そして、パターン認識ではニューラルネットワークは非常に役立つことがわかっている。
近年流行のパターン認識では、局所的なパターンの特徴を、「局所」のサイズを様々に変えながら抽出し、それらをパラメータとして組み合わせたうえでニューラルネットワークの入力とする。
この方法だと、局所的な特徴も捉えられているし、ニューラルネットによって全体のバランスも考慮される。
囲碁の広い盤面を全部「記憶」するのではなく、局所的なパターンを元に判断を下すこともできるだろう。
そして、実はこのパターン認識方法は、人間の「目」の働きを模倣したものだ。
目は局所パターンを識別し、局所的な形状を「特徴」として不可逆圧縮し、その組み合わせとしてデータを脳に送っている。
この「特徴抽出」によって、人間は線を線と感じたり、丸いものを丸いと感じたりすることがわかっている。
点に過ぎない星を見て、それがつながった「星座」を思い浮かべるのもこれに近い働きだ。
なので、「前線を作る」ゲームである囲碁が、パターン認識の世界に踏みこんだというのも、ある意味当然なのかもしれない。
話はここまでの部分で終わっていて、以降は余談。
途中で書いた「マッチ箱エンジン」だけど、マッチ箱エンジンで囲碁の19路盤を学習させたらどうなるか…という解説記事があった。
英語だけど、図表が多数入っているのでわかりやすく、面白い。
ざっと解説すると、多数のマッチ箱に9色のビーズを入れておくと、マルバツゲームの相手をすることができる。
箱は、現在の「盤面」の状況を示している。対応する箱から、ビーズを1個取り出すと、その色が「どこに打つか」を示している。
最初は、すべての色のビーズを入れてある。
当然、打てない場所の色も出てしまう。マッチ箱は、最初はマルバツのルールも知らないのだ。
それは捨ててやり直す。つまり、人間がルールを教える。
正しい手を打った場合も、マッチ箱はランダムに打つことになるので、おそらく負けるだろう。
マッチ箱が負けたら、最後の手順で打ったビーズは捨てる。その手を打ってはいけなかったのだ。
もしもマッチ箱が勝ったら、途中で使ったビーズをすべて1個増やしてやる。勝ったご褒美だ。次からはこの手を打ちやすくなる。
マッチ箱はだんだんと良い手を打つようになってくるし、究極的には絶対負けない、最強プレイヤーとなる。
…というのがマッチ箱エンジンなのだけど、解説記事は途中までこの解説をしつつ、最後に19路盤への応用の話になる。
打てる可能性が非常に多いので、マッチ箱が大量に必要になる。
最後の画像は、必要なマッチ箱を置くための面積を、わかりやすいものと比較した図だ。
なるほど、ゲームの規模がわかりやすい。
というか、先に書いた通り Google の囲碁プログラムは基本的にマッチ箱エンジンだ。
(多少工夫して、知らない手でも打てるようにはなっているけど)
マッチ箱じゃなくてコンピューターを使っているけど、この図にあるようなものを実現してしまったということですよ!
最近の囲碁のアルゴリズム詳細について、詳しい資料がありました。
今回、いくらかはこの資料を参考に書かせていただいています。
2016.3.20追記
3月中旬、AlphaGO は世界最高峰の棋士である韓国人、イ・セドル九段と対局し、4対1で勝ちました。
と同時に、上記記事を書いたときにはあまり報じられていなかった詳細が報じられました。
やはり、推察したとおり盤面を画像として認識しているそうです。
チェスや将棋では駒の位置関係など、データを中心に扱いますが、画像として「なんとなく」状況把握している。
今までの AI などにはなかった新しい手法です。
と同時に、駒の位置関係だけが重要で、駒の価値や動きに意味がないからこそできる手法だとも思います。
AlphaGO を開発したディープマインド社は、汎用性のある AI を目指して研究しているそうです。
実際、AlphaGO と同じ仕組みをインベーダーゲームやブロック崩しなどの単純なゲームに応用し、スーパープレイヤーを作り出すことに成功しています。
とはいえ、パックマンのルールは複雑すぎて理解できません。
ニューラルネットワークは、なんにでも応用できる汎用性がある一方で、単純な問題にしか対応できません。
囲碁もまた、十分に奥深いゲームではあるが、ルール自体は非常に単純。
だからニューラルネットワークが活きてきます。
DeepMind 社の創始者の詳細記事が、昨年末発売の Wired に掲載されていたようです。
AlphaGO がイ・セドル九段との対局初日に、WEB ページでも公開されたようです。
今日知って読んだところ、非常に面白かったのでこの追記を行った次第です。
同じテーマの日記(最近の一覧)
関連ページ
【訃報】ジョン・ホートン・コンウェイ氏【日記 20/04/15】
ケン・トンプソンの誕生日(1943)【日記 16/02/04】
シーモア・パパート 誕生日(1928)【日記 16/03/01】
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
Twitterでフォローしてる人が、「弓括弧 { } が使えるキーボードを持った最初のマシンはどれだろう」という質問を投げかけた。
TK-80BS や APPLE II にはなかった、という注釈付きで。
たちまちいろいろな意見が集まった。見ていて面白い。
是非参加しようと思って、自分が知っている中で一番古い、キーボードを持つマシン…Whirlwind I と、 TX-0 の資料をあさってみた。
この2機種は、ともに Friden 社の Flexowriter というテレタイプが接続されている。
そして、当時は ASCII コードの制定前。使える文字の種類も、今よりずっと少なかった。
Whirlwind I は、弓括弧は使えなかった。
じゃぁ、TX-0 は?…とおもったら、2種類のテレタイプが繋げられていたようで、そのうち片方では使える。
正確にいえば、1959年に改造して使えるようになった。
弓括弧だけでなく、Σとかαβγや、⊂☞などの記号も使える。
一方で、アルファベットは大文字だけで、小文字は使えない。
その人に報告した。
で、報告ついでに再び Twitter の会話を見ると、C言語の祖先でもある BCPL ではブロックを示すのに弓括弧を使うけど、当時はまだ弓括弧が使えないのが普通だったのではないか、との疑問が質問の意図だった。
BCPL は ALGOL 系の言語で、ALGOL はプログラムをひとまとまりにした「ブロック」を多用するのが特徴。
ALGOL では BEGIN ~ END でブロックを示した。後の Pascal なんかでも同じ。
でも、BCPL は最初に弓括弧でブロックを示した言語で、後にC言語も同じ方法をとる。
今ではこちらの方法のほうが主流だ。
そして、BCPL は 1970 年ごろ。TX-0 は1960年ごろ。
ちょっと時代が違うか。報告はしたものの、あまり関係なかったかな。
返事が返ってきた。
これは、数式の印字専用かもしれませんね、との感想。
うん。僕もそんな気がする。BCPL の謎を追っている、ということなので、あまり関係なかったかな。
でも、僕もこのテレタイプが何のために作られたのか気になり始めた。
再び調べてみる。
先にリンクしたのだけど、改造した際の文書によれば、TX-0 の後継機である TX-2 用に作られたものだそうだ。
TX-0 / TX-2 は MIT のリンカーンラボで作られたのだけど、別資料によればリンカーン Flexowriter とも呼ばれているようだ。
じゃぁ、そこら辺をキーワードにググってみる。
「The Lincoln Keyboard - a typewriter keyboard designed for computers imput flexibility」
というタイトルの論文が見つかった。
コンピューターを柔軟に使うためのキーボード。大きく出たじゃないか。
でも、論文の中身が読めないので、なんに使おうとしたのかさっぱりわからない。
#翌日追記。上の論文、1ページだけで、別ページで公開されていました。
リンク先もそのページに切り替えています。
1958/6/1 に公表されたもので、定義した記号の実際の使われ方の例も挙げています。
主な仕様用途としては「プログラムを書く際や、コミュニケーションをする際に、記号が多い方が便利だから」。
こちらはこれ以上先に進めないので、別方面を調べる。
TX-0 のあとの歴史を追ってみよう。
TX-0 の製作者は、TX-0 に熱中する学生を見て、これが商売になると直感し、DEC 社を起こす。
最初の製品 PDP-1 は、TX-0 をプロトタイプとして作り出されたものだ。
でも、PDP-1 は普通の Flexowriter が接続された。リンカーン Flexowriter ではなく、弓括弧は使えない。
PDP-1 の後継は PDP-7 で、UNIX が最初に作られたマシンだ。
PDP-7 の資料を読むと、ASCII コードを前提として作られているのだけど、テレタイプ社の ASR33 というテレタイプが標準だ。
テレタイプの都合で、弓括弧は使えない。
UNIX が移植され、C言語が作られる PDP-11 では、完全に ASCII コードの時代になっている。
テレタイプもアスキーコードで、すべての文字が入れられるのが前提。
多少キーボードの配置は今と違ったようだが、弓括弧も使えたようだ。
特に手がかりはないな、と思って元の Twitter のスレッドを見ると、ASR37 というテレタイプでは弓括弧が使え、ケン・トンプソンは PDP-7 に ASR37 を接続して UNIX を作ったという調査を書いている人がいた。
なるほど。ASR37 ではもうすべての記号が使えるのか。
…でも、それは話が違う。
元の話は、BCPL で弓括弧が使えた理由、なのだ。UNIX の時にはすでに BCPL を簡略化してB言語としているのだから、その前にどこかで弓括弧が使えたはずだ。
#B言語が発展したのがC言語。
TX-0 に繋げられたキーボードは、もともと TX-2 用に作られた特殊なものだった。
じゃぁ、ちょっと TX-2 を調べてみよう、と思ったら、いきなり TX-2 用の BCPL マニュアルが見つかった。
え? なんで?
TX-2 って、BCPL 作られるよりかなり前のマシンだと思うのだけど、BCPL の移植があったの?
しかもこれ、BCPL の発表が行われた年のうちに移植されている。
あまりにも速い。
ここに来てやっと、BCPL を洗い出してみよう、という気になる。
BCPL は、イギリスのケンブリッジ大学で開発されたはずだ。
遠いアメリカに、すぐに移植されるとは思えない。
ここで、思いもよらない事実を知る。
BCPL の作者、マーティン・リチャーズはケンブリッジ大学の人だけど、MIT を訪問しているときに BCPL を作ったという。
BCPL を作ったのは、プロジェクト MAC で作られた、IBM 7094 上の CTSS 上。
世界最初の「マルチタスク・マルチユーザー環境」で動作するソフトウェアだった。
しかし、IBM 7094 には、標準接続のテレタイプがない。
当たり前だ。当時の IBM はバッチ処理専門で、人が直接操作するようなことは考えていないのだ。
でも、プロジェクト MAC は実験プロジェクトとして、IBM 7094 に複数台のテレタイプ端末を接続し、ユーザーが直接使用していた。
ところで、プロジェクト MAC は、リンカーンラボも関与している。
そしてどうやら、ここで使われたテレタイプ端末が、TX-2 用のリンカーン Flexowriter だったようなのだ。
つまり、そういうことなのだ。
TX-0 で弓括弧が使えた、というのは、BCPL の話題からは的外れだったな…と思っていたのだけど、調査したらそれこそが大当たりだった。
相変わらず、TX-2 用の特殊テレタイプが何のために考案されたのかはわからない。
数学の式を出力するためだったかもしれない。
でも、BCPL は、このテレタイプを前提に設計された。
普通のテレタイプには存在しない波括弧があったから、それを「ブロック」を示すのに使用した。
BCPL の開発は 1967年からで、1969年に発表されたらしい。
そして、TX-2 への移植版も、同じ年に作られている。実際には同時並行で作られていたのだろう。
となると、文法的にも類似と思われる。
Σとか∧∨などの、非アスキーコード文字が普通に使われている。
BCPL は基本的にアルファベットの大文字を使い、小文字を使わない。これも、リンカーン Flexowriter による制約だったのだろう。
僕は現代の…アスキー文字だけで書く BCPL の文法を知らないので比較できないのだけど、知っている人は比較したら面白いと思う。
2016.2.13 追記
上に書いてあること、いくつか間違いがありました。
まず、CTSS で開発された BCPL では、リンカーン Flexowriter を使っていません。
そのため、{ } を使うこともできず、TX-2 版 BCPL とは記号の使い方が大きく異なっていました。
最大の間違いは「BCPL は { } を最初に使った言語である」という点。
この記述自体は間違えていないのですが、正しくもありません。
詳細は、訂正記事としてまとめています。
#いつものように、訂正記事のほうが長いです。
同じテーマの日記(最近の一覧)
関連ページ
ボブ・バーマー 誕生日(1920)【日記 17/02/08】
世界最初のドメイン登録(1985)【日記 17/03/15】
クリストファー・レイサム・ショールズの誕生日(1819)【日記 16/02/14】
ニクラウス・ヴィルト 誕生日(1934)【日記 16/02/15】
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
先日書いた日記の訂正記事です。
いつものことなのだけど、調査して面白い事実を見つけたら、とりあえず書いちゃってます。
で、公表すると各所から突っ込みが来るので、再調査してみると思っていたのと違った、ということもしばしば。
ちゃんと調査してから書け、と言われそうだけど、1人で考えていると気づかない部分とかあって、書いた時点では正しいと思っているんですよ。
この方針については以前表明した通り。
さて、今回一番の訂正事項は、「BCPL が世界で最初に { } を使った言語である」という点。
Wikipedia をはじめとして、多くのページにもそう書いてあります。
先回りして書けば、これは間違いではありません。
昔のキーボードって { } は使えませんでした。
BCPL はなぜ、一般的でなかった { } を使ったのだろう、と「最初に { } が搭載された機械探し」を始めた人がいました。
そして、僕も調査に参加したわけです。
その調査報告が前回の日記なのですが、大きな間違いがありました。
誰も疑問に思わなかった前提…「BCPL は世界で最初に { } を使った言語である」というのが間違っていた。
いや、先にも書きましたが、間違いではない。でも、間違っている。
すごく事情が込み入っていて、この短い文章では正確な表現になっていないのです。
前回、TX-2 に移植された BCPL マニュアルを提示して、時期・地理的にオリジナルも同じだろう…と判断していました。
実は、この時点でオリジナルのマニュアルを探していたのだけど、見つけられてませんでした。探し方が悪かった。
TX-2 マニュアルも隅々までは読めておらず、若干勘違いがあった。
その後、BCPLの最初のマニュアル(1967)を発見しました。
予想外なことに、一切 { } を使っていませんでした。
最初に { } を使った、と言われている言語は、一切 { } を使っていなかった。
このマニュアル、当時の紙資料を基に、OCR して再度 PDF 化したものです。
その意味では「作り直された」もので、資料性は落ちますが、検索性が上がっていて便利。
わざわざ手間をかけて配布しているのは、C言語作者のデニス・リッチーです。
実は、恨み節を述べるために手間をかけてまで配布している節がある。
ところで、デニスが持っているのとは別のバージョンを、ドイツのクライネさんも公開しています。
こちらはスキャンしたそのままです。
デニスもクライネも、完全なバージョンを持っていたわけではなく、一部ページが欠落しています。
しかし、この2つを合わせることで、ほぼ完全な内容がわかります。
デニスによれば、興味深いことにこの2つの資料は、別のタイプライターで印刷されたものだそうです。
書いてある内容はほぼ同じなのに、文字サイズが違うためにページ割が違う、とのこと。
当時は紙テープにタイプ内容を記録し、同じ内容を何度でも印字することができました。
紙テープに互換性のある別のタイプで印刷が行われたのでしょう。
オリジナル BCPL マニュアルの PDF の配布ページでは、デニスの思い出話も書いてあります。
冷静で落ち着いた語り口になっていますが、実は BCPL 作者のマーティン・リチャーズに対して恨み節を述べています。
デニスは、ブロックを示す文法について、こう言います。
「リチャーズが例示したプログラムでは、$( $) になっている。
現在、リチャーズはBやCで使われるような { } を使って例を示すことがある。」
リチャーズのWEBページには、現代のパソコン用に移植された BCPL や、そのサンプルプログラムがあります。
これらは、すべてブロックを作るのに { } を使っています。
デニスは、これを「Cの影響を受け、後から改竄したのだ」と断じています。
言葉にはしていませんが、Cが有名になったので、「 { } を最初に使った言語」という手柄を横取りしようとしているのだ、と言っているように思います。
ところで、BCPL は CPL (1963) から派生したものです。
僕は残念ながら、CPL という言語を知りません。名前は知っているけど、使ったことはない。
ネット上の情報によれば、ALGOL 60 をベースとして、COBOL などの「事務処理言語」として必要な機能を持たせようとした結果、非常に巨大になってしまって実用性を失ってしまった言語、のようです。
CPL の作者は、ケンブリッジ大学のクリストファー・ストレイチー。
世界初の「マクロ言語」を開発した人でもあります。
この「マクロ言語」は、コンパイラの前段階として、テキストを置換する簡単な処理をするもの。
実は、以前に MUSYS の話で、このマクロ言語のことを書いています。
マクロ言語は、コンパイラに、簡単な置換を行うフィルタを組み合わせるだけで、ずっとプログラムが幅広いものになる、と示すものでした。
CPL は、Titan と呼ばれるコンピューターで実装されました。
Titan は、Atlas という名前で市販されたコンピューターのプロトタイプ機(1962)。
なので、CPL は Atlas でも動いたそうです。
リンク先の写真に、テレタイプ端末が写っています。
Atlas では Friden 社の Flexowriter が使用されたらしいので、これも Flexowriter ではないかと思うのですが、型番特定には至っていません。
この端末では、§(セクション)記号が使えたそうです。
Wikipedia の英語版の BCPL のページの「ノート」で、ケンブリッジ大学の卒業生だという方が、1975年にはまだこのタイプライターが使われており、§ が使えた、と証言しています。
#2016.2.26 追記
これ、少し違うようです。別記事にまとめました。
§は「表記できたけど、入力できたわけではない」。
使えたという証言も、表記できたことを言っているか、直接タイプ出来たように記憶違いしているのでしょう。
そして、CPL の文法では、この記号でブロックを示します。
ブロックとは、つまりセクションです。この記号で示すのは、わかりやすいように思います。
ちなみに、セクションの終了は、記号の上に縦棒を重ね打ちして、「打消し」つまり終了を表現します。
(タイプライタなので、1文字戻って別の文字を重ね打ちすることができました)
BCPL は、この CPL を簡略化して、現実的に実装できるようにしたもの。
リチャーズがケンブリッジ大学で言語仕様を定め(1966)、その後 MIT を訪問した際に実装(1967)したもの、だそうです。
ケンブリッジ大学で CPL を簡略化しようとしていたのだから、おそらくはストレイチーの示唆があったのかと思います。
BCPL では、言語の処理を3段階に分け、移植性に考慮しています。
一番中心となる「BCPLコンパイラ」は、BCPL で記述され、どのコンピューターにも簡単に移植できました。
コンパイラが生成するのは、中間コードでした。
この中間コードを実際のコンピューターの命令に変換するには、コンバーターが必要となります。
ここは移植ではなく、機種ごとに作らないといけない部分。
でも、コンパイラを作るよりは簡単でした。
そして、コンパイル前に簡単な文字列置換を行う、「プリプロセッサ」と名付けられた処理が存在していました。
ちょうど、CPL を作ったストレイチーの「マクロ言語」のように、コンパイル前に文字列置換を行うのです。
ただし、BCPL のプリプロセッサは、固定された動きしかしなかったようで、マクロ言語としては使用できません。
じゃぁ、何をするのかと言えば、機種ごとに異なる「記号」を変換し、言語本来の表現に変換するためのものでした。
これにより、BCPL コンパイラは、一切の記号・英小文字を必要としませんでした。
f(a+b) という記述があれば、プリプロセッサにより F RBRA A PLUS B RKET と変換され、そのあとでコンパイルされます。
これは、当時のどんなテレタイプでも扱えることを意味します。
BCPL の最初の実装は、MIT の CTSS …改造された IBM 7094 でした。
前回、リンカーン Flexowriter が接続されたのではないか…と推測していたのですが、これは全く大外れで、IBM 1050 が接続されている、と BCPL マニュアルに明記されていました。
IBM 1050 では § も、 { } も使えませんでした。
そこで、$( $) でブロックを示します。
§に似た形の $ を使い、始まりと終わりを示すために ( ) を付け加えた…ということのようです。
風説では、BCPL では { } を使い、この記号が使えない環境では $( $) で代替した、となっています。
まぁ、代替したのはあっているのですが、{ } の代替ではなく、§の代替だった、というのが真相でした。
先に書いたように、BCPL は、記号を英大文字の単語に変換します。
括弧には3種類があります。
( ) [ ] $( $) は、それぞれ RBRA RKET SBRA SKET SECBRA SECKET となります。
頭についた R S SEC は、おそらく Round Square SECtion の意味でしょう。
BRA と KET は、括弧を意味する英単語 bracket の初めと終わりの3文字です。
SECBRA と SECKET は、Titan では1文字で表現できたのに、CTSS では括弧が2種類しか使えなかったため、2文字での表現になっています。
実際の記号と予約語の対応は、機種によって全く異なります。
Alto 用の BCPL のマニュアル(1979)を見たとことでは、SECBRA SECKET nに相当する部分は、[ ] になっていました。
じゃぁ、SBRA と SKET はどうなったのか…
これらは、連続したメモリアクセス…つまりは配列を作るためのものでしたが、配列には ! でアクセスするようになっています。
Alto で作られた有名なプログラム言語…Smalltalk では、ブロックの表現に [ ] を使います。
また、Smalltalk を中間言語にコンパイルすると、メモリアクセスは ! で表現されるそうです。
Alto ユーザーにとってわかりやすいように、記号類を再定義したのでしょうか。
#この部分、間違えていました。再訂正です。(2016.2.15)
Xerox 内では、Smalltalk より先に BCPL が普及していました。
詳細は再訂正記事書きました。
また、PDP-11用のOSである tenex 用の BCPL マニュアル(1974)もありました。
こちらでは、SECBRA と SECKET は { } になっています。TX-2 と同じです。
いずれにせよ、ブロック定義は § $( $) { } [ ] など、いろいろな表現があったことがわかります。
ここら辺、プリプロセッサという仕組みが柔軟だからできることでもあります。
ところで、Alto 版や tenex 版のマニュアルには、BCPL 作者のマーティン・リチャーズの名前は入っていません。
TX-2 版マニュアルには、リチャーズの名前が入っています。
どうやら、移植はほかの人がやったのではなく、本人の作業のようです。
CTSS 版は 1967 年。TX-2 版マニュアルは 1969年になっていますが、冒頭に「改訂版が完成した」という手紙がついています。
TX-2 移植がいつかはわからないのですが、1969年よりも早い時点で…おそらくは、リチャーズが滞在している 1967年ごろに移植が行われていたのでしょう。
というのも、このマニュアルの表紙のリチャーズの名前の下には、連絡先としてケンブリッジ滞在中の住所が書かれているのです。
Alto 版マニュアルには、TX-2 版を元に作成された NOVA 版を移植したものである、という注釈がついています。
Data General 社の NOVA 用の BCPL もまた、リチャーズが直接移植したものです(1978)。
#この部分も間違えていました。再訂正です。(2016.2.15)
NOVA 版 BCPL には2つあり、上に書いたリチャーズの公式移植以前に、Xerox 内で勝手移植されていました。
詳細は再訂正記事書きました。
tenex 版のほうにも、TX-2 版を元にしているという説明があります。
NOVA 版 BCPL についても、マニュアルなどを探したのですが見つかりませんでした。
ただ、ここで TX-2 版を元にしている、ということから、リチャーズは CTSS 版よりも TX-2 版のほうを気に入っていた、という事かと思います。
§ を使うのが本来の姿だけど、ないなら $( $) よりも { } のほうが良かった、ということなのでしょう。
話を戻します。
C言語の作者、デニス・リッチーは、{ } だけでなく、論理和や論理積の表現についても異議を申し立てています。
リチャーズは ∧ ∨ などの論理記号や、場合によっては & で書きたがるが、当時は記号を使わず LOGAND LOGOR などと書いていた、記号でこれらを示すのはB言語(1969年ごろ)の発明である、というのです。
しかし、TX-2 版では ∧ ∨ を使っています。
tenex 版では & \ で、Alto 版では & % です。
C言語が一般に知られるのは、UNIX の配布が始まった 1974年ごろから。1978年の「プログラム言語C」の出版で急激に広まります。
tenex 版は 1974年ですから、& を使っているのはCの影響というより、「AND」の記号として & を使うという、ごく自然な選択かと思います。
Alto 版は 1979年なので影響があってもおかしくないけど、むしろ tenex と同じ発想ではないかな。or の表現は両方とも違うし。
たしかにBよりも後ではありますが、そもそもBはCが有名になってから知られるようになったものです。
これらをBの真似だ、とするのは違うでしょう。
ここからは推測です。
BCPL の CTSS 版(1967)を元にして、すぐに Multics 版と TX-2 版が作られたのではないでしょうか。
移植性を気にして作られているのですから、すぐに移植してみるというのはありそうです。
デニスとケンは、移植のために CTSS 版 BCPL のマニュアルを渡された。
それをデニスは保存していて、公開した。
移植は仕様通り… CTSS 版をほぼそのまま移植する形で行われた。
Multics 版のマニュアルなどは見つからなかったのですが、Multics の BCPL で書かれたソースの一部は見つかりました。
日付は 1973 年となっているので、ずいぶんと後のものです。しかし、CTSS 版と同じく、$( $) を使っていることがわかります。
一方で、リチャーズは TX-2 への移植に立ち会い、あまりに文字セットが異なる TX-2 のリンカーン Flexotype 用に、各種記号の意味を割り振った。
実際、TX-2 版はオリジナルと比べると、多くの記号を使うように変更されています。
そして、この記号セットを気に入り、以降の BCPL は TX-2 版をベースにするようになった。
…非 ASCII 文字はどうしようもなかったでしょうけど、ASCII に取り入れられた { } などは、そのまま使えます。
∧などは、先に書いたように & に変更するなどの違いがあったと思います。
ただ、少しおかしなところもあります。
リチャーズは、1969年にBCPLの論文を発表しています。
ここでは、プログラム部分が手書きになっており、ブロックの表記に $( $) を使っています。
一応、本文の中で「非常に文字セットが限られた機械でも使える」と説明しているので、{ } などの一般的でない文字を使わなかっただけ、というようにも思いますが。
TX-2 は Project MAC で使用されてはいますが、Project MAC 自体はコンピューターの研究をなんでも行うごった煮プロジェクトで、Multics 開発で TX-2 を使った、というわけではありません。
そして、デニスとケンは、Multics 開発のために Project MAC に参加したのです。TX-2 版の BCPL を知らなかったとしても当然でしょう。
AT&T が Multics から撤退(1969)した後、ケンは UNIX を作り上げます。
そして、その上で BCPL を簡略化した、B言語を作ります。
このときに、ブロック表記は { } となりました。
別に、TX-2 版を知らなくても、当然のように同じ記号に行きついたのではないかと思います。
先に書きましたが、BCPL の文法上、3種類の「括弧」が必要でした。
CPL が考案された Titan のテレタイプ端末では、3種類が使えました。
しかし、通常のテレタイプ端末では、2種類しかありませんでした。
だからこそ、3つ目に $( $) という2文字の組み合わせを使っていたのです。
ここに、 { } という「3番目の括弧」が登場したなら、当然それを使うでしょう。
TX-2 のリンカーン Flexowriter では、3種類目の括弧として { } が使えました。
ASCII 対応した端末でも、3種類目の括弧として { } が使えました。
両方とも3種類目が { } だった、というのは偶然で、しかし3種類目の括弧があるならそれをブロックに使う、というのは必然です。
ビット演算に & を使った、というのも、先に書いた BCPL の各種移植と同じように、必然的なものでしょう。
さて、長くなったので要点だけをまとめ直しましょう。
・BCPL は、記号部分を自由に変えられる実装。
当初仕様ではブロックを § で、CTSS 版では $( $) で示したが、TX-2 版では { } で示す。
・リチャーズは TX-2 版が気に入ったようで、以降は TX-2 版をベースとし、各機種に移植し続ける。
tenex 版のように、直接移植したわけではないバージョンでも、TX-2 由来のものがベースとなった。
・ケンは CTSS 版 BCPL を元にB言語を作った。この際、ASCII が使えるようになったので、ブロックを { } で示すように改良。
ブロック表現に関しては、おそらく TX-2 の影響はない。
・デニスはB言語を元にC言語を作った。このC言語は有名になり、現在でも標準的な言語の地位にある。
・BCPL が「最初に { } を使った言語」と呼ばれるようになり、事実と異なるとデニスが反発。
以上を前提として、蛇足っぽくなりますが前回から引き続いての結論を。
世界で最初に { } を使えるキーボードを搭載したコンピューターはどれだろう、という最初の問いかけへの答えは、TX-2 です。
より厳密には、TX-2 に接続された、リンカーン Flexowriter 端末のキーボードが { } を使えるようになっていました。
前回、この Flexowriter を CTSS にも接続したのではないか…と考えていたのですが、これに関しては誤りでした。
お詫びいたします。
リンカーン Flexowriter は TX-2 (と、今回の話に関係ない TX-0)でしか使えなかったようです。
問いかけの裏にあった、なぜ { } が一般的でなかった時代に、BCPL で { } を使おうと思ったのか…という疑問自体は、「疑問の前提が間違えている」が答えになります。
BCPL では、当初 { } を使おうとは考えていません。
$( $) 表記は { } が使えないときの代用表記…と一般的に考えられていたのですが、この考え方が誤りで、$( $) は § の代用表記でした。
TX-2 に移植する際に、この代用表記が { } に変わります。
また、$( $) 表記をしていた BCPL からB言語が作られた際に、TX-2 版とは無関係に { } が使用されるようになります。
BCPL は { } を使った最初の言語なのか?
これに関しては、立場の違いでどちらともいえます。
「最初」というのは、「由来」を聞いているのでしょうか?
それとも「一番最初に登場した」言語を聞いているのでしょうか?
同じテーマの日記(最近の一覧)
関連ページ
デニス・リッチーの誕生日(1941)【日記 13/09/09】
再訂正:BCPL と Smalltalk の関係【日記 16/02/15】
再訂正:BCPL と Smalltalk の関係【日記 16/02/15】
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
今日は、クリストファー・レイサム・ショールズの誕生日(1819)
およそ1年前、命日の際に取り上げています。
命日が誕生日の3日後なのね。
詳しくはそちらを見てもらうとして、QWERTY 配列キーボードを考案した人です。
これ、数字の下の段のキーが、左上から順に QWERTY という順に並んでいるのでそう呼ばれます。
別の並びとしては DVORAK 配列とか有名だけど、僕は使ったことはありません。
(別に DVORAK の順に並んでいるわけではなく、配列考案者の名にちなむ)
詳細は命日記事に譲るので、もう余談です。
今でもコンピューターのキーボードは QWERTY 配列になっていますが、記号類などは昔とずいぶん変わっています。
ここ数日、昔のキーボードには { } とかの記号ないよね、って話を書き続けています。
この話書くために、すごく膨大な数のキーボード画像見ました。
いやー、いろいろある。昔は今ほど「標準」がしっかりと決められていなくて、本当にバラエティに富んでいる。
今では、US 配列は数字の 2 の SHIFT 状態が @ になっています。
日本で使われる JIS 配列は、ここが " になっている。
US 配列は当時一般的に使われていたキーボードを元にした…ということになっているのだけど、1970年前後に一般的だった ASR33 端末なんか、むしろ JIS 配列に似ていたりする。
それ以上古くなると、今度は記号類が極端に減って、SHIFT しても記号なんかでなかったりするはずなんだけど、なんで記号の配列が「あまり使われていなかったもの」に変わってしまったのかと思うと興味深い。
#JIS 配列は ISO 配列を元にしているのだけど、この配置は SHIFT 状態で ASCII コードを +32 ないし +64 すればよいだけなので論理的に作りやすい、という説がある。
でも、むしろ話は逆で、当時一般的に使われていた ASR33 のような配列を元に ASCII を制定したのではないかと思う。
よく調べてないから鵜呑みに信じられても困るけど。
Space-cadet keyboardなんていうのも見つけた。
3日前の記事に書いた、TX-0 に後からつけられたキーボード…リンカーン Flexowriter の延長線上にあるのではないかと思うのだけど、詳しい由来はよくわからない。というか、そこまで調べていない。
MIT で作成された、Lisp machine で使われていたキーボードで、奇妙な記号がいろいろと使える。
括弧なんか ( ) [ ] { } に加えて、〈 〉も使える。< > (大なり小なり)と区別がつかないで困ったりしなかったんだろうか。
☜☞ (環境によっては見にくいかも。人差し指で左右を示す形)に加えて、👍👎(環境によっては表示されないかも。親指を立てる、親指を下に向ける)まである。
リンカーン Flexowriter は、ASCII 時代になって記号が増えることで消えてしまった時代の仇花なのだと思っていたから、思わぬ後継機種があることに驚いた。
まぁ、結局一般化はしなかったわけだけど、今なら Unicode があるからこれらの文字を入れられないでもない。
その記号が入るからと言ってあまり便利にならないのだけど、洒落でどこかの会社が復活させないだろうか。
値段次第では買ってもいいのだけど。
#あ、でも僕は記号類の配置が US 配列だとイライラしてしまうので、ダメかも。
BCPL と { } の話は、まだ気になる部分があって調査しているのでもう1回くらい書くと思います。
面白い話のタネを提供してくださった、ツイッターで会話していたグループの方々に感謝です。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
今日は、トーマス・J・ワトソンの誕生日(1874)。
IBM の初代社長です。起業した人かというとちょっと違うのだけど。
ちなみに、2代目社長となるトーマス・J・ワトソンはこの人の子供。
わー、なんだそれ。子供に自分と同じ名前付けるな。
ややこしいので、一般に父親は「シニア」または「ワトソン」、子供は「ジュニア」または「トム」(トーマスの愛称)と呼ばれます。
…というわけで、この文章ネタはもう3回目。
ややこしいので改めて書いておくけど、今日はシニアのほうの誕生日。
凄腕のセールスマンだったけど、販売のために使った手法が法に抵触していて逮捕、一度は有罪に。
しかし、その後控訴して無罪を勝ち取ります。
その後、晴れて無罪となったので、手腕を買われて雇われ社長に。
パンチカード集計機やタイプライターなどを売っていた会社でした。
このときに社名を International Business Machines に変更。
意味は「国際事務機器」かな。略称で IBM と呼ばれます。
シニアは、この会社を大企業に育て上げました。
でも、シニアは IBM を「コンピューターの会社」にはしていない。
機械を売るのではなく、ビジネスソリューションを売るサービス会社でした。
サービスのために、多くの社員を抱えていた。
社員は家族同然と考える彼にとって、コンピューターを導入して「人手を減らす」なんて言うのはやってはならないことだった。
とはいえ、コンピューターと呼ばなかっただけで、SSEC という、演算部分が真空管で、当時としては最高速度のプログラム可能計算機を開発させているのだけど。
僕が調査している中では、一番古い「NOP命令」を搭載したマシンでもあります。
コンピューターじゃないけど、NOP は持っているのね。
詳細は、先ほどもリンクした命日記事に書いてますので、そちらをお読みください。
同じテーマの日記(最近の一覧)
別年同日の日記
15年 クリストファー・レイサム・ショールズ 命日(1890)
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
今日は、ハーマン・ホレリスの誕生日(1860)
閏日の誕生日です。珍しい!
今日の紹介を逃すと、次は4年後になってしまいます。
まぁ、普通は28日か、3月1日を「誕生日」の扱いにするのでしょうけど。
ハーマン・ホレリスは、パンチカード集計機を作成し、計算・集計事務に革命を起こした人です。
「計算する機械」は歯車式でそれなりに作られているのだけど、「データを処理できる機械」というのはそれまでなかった。
今だって、コンピューター仕事で何が重要かというと、計算よりも「データ処理」です。
ホレリスが作った集計機は、10年以上かかると見積られた集計作業を、たった1年半で終わらせています。
しかも、1年半の間に「2回集計して間違いがないことを確認する」作業まで終わらせているのです。
それまでの10倍以上の作業効率。
これを革命と言わずに何と言いましょう。
たとえば、国勢調査の場合でいえば、1人の人に関する様々なデータを、1枚のカードに入れておくのね。
そして、集計機を使うと、まず「分類」ができる。
年齢別にいくつかの山にカードを分けたりできます。
そして、枚数を数えられる。年齢別に分けた山ごとに枚数を数えれば、年齢ごとの人数分布がわかる。
集計ができる。
年収が書かれていたとしたら、年齢ごとの年収を全部足し合わせられます。
すでに人数がわかっているのだから、計算すれば年齢ごとの平均年収がわかります。
まぁ、こんな感じ。
今のコンピューターのように完全自動ではないけれど、分類したり集計したりを繰り返せば、望むデータを手に入れられるのです。
例えば、最初に年齢で分類するのではなく、家族構成(子供の人数)で分類することもできます。
すると、年収と子供の数の関係性を調べたりもできる。
これ、今のデータベースでも、「カード」が「レコード」という単位に変わっただけで、ほぼ同じ概念。
コンピューターのデータベースが広く普及したのって 1990年代後半だと思うのだけど、その100年前に同じようなものを作り上げていたのです。
#まぁ、パンチカード集計機を元にコンピューター化したのがデータベースだ、ともいえるのだけど。
IBMのパンチカード集計機は、カード1枚に 80桁の数値情報を入れられました。
後に、パンチの穴の組み合わせで文字も表現できるようにしています。
1枚 80文字です。これが、後に「1行 80桁」というコンピューター画面の基準となります。
今では画面上に自由なサイズの Windows を開けるので、1行が 80桁というイメージはないかもね。
でも、画面サイズで 640dot が基準とされやすいのも、横 8dot の英字フォントで 80桁を表示すると 640dot 必要になるためです。
もっと詳細を知りたい方は、以前に命日記事を書いていますので、そちらも併せてお読みください。
同じテーマの日記(最近の一覧)
関連ページ
シーモア・パパート 誕生日(1928)【日記 16/03/01】
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
日曜日、子供たちと久しぶりに理科ハウスへ。
昨年11月末に行って以来だな。
ここは相変わらず面白い。
この日は中学生の女の子グループや、科学好きのお母さんと娘さんが来てたり、女性比率が高かった。
女性でもやっぱり理科が好きな人ばかりで、視点が鋭い。
そして、その鋭さが男とは違う、ということが面白い。
細かなことがいちいち新鮮に感じられる。
プラネタリウムで、「1時間にどれだけ空が動くか」という話が出た。
答えは結構みんな知っていて、15度。
じゃぁ、1日後の同じ時間の空はどれだけ動いているか。
公転が360度を365日で行うので…1度にちょっと足りないくらい! という答え。
ここでは正確性を求めてないから、これでいい。
遊んでいて夕方帰る間際、急に思い出して、タイガー計算機で 360/365 を計算してみる。
まず、タイガー計算機で割り算をする、というのが知らない人には難しい。
さらに、小数点以下まで計算を続けるのが難しい。
これを実演してみよう、という意図だった。
答えは 0.9862。まぁ、そんな感じだろう。
でも、あっているかどうか確かめようと、スマホを出して電卓アプリで計算。0.986301。
タイガー計算機は、1桁づつ求めて精度を上げていくので、最後の桁が多少違うけど、あっている。
…と、この話はどうでもいいんだ。
問題は、このとき出した電卓アプリを見て、周囲の小学生が「わっ! なにそれ! すげー」ってなったこと。
√程度なら普通の電卓にもついているけど、Sin Cos とか Log とか π とか書かれたボタンがあるのに驚いたようだ。
もちろん、理科ハウスなので、小学生でもこの程度の関数は知っている子ばかりが集まっている。
あぁ、これは関数電卓、と教えてあげる。
いろんな関数が使える、という説明と、これはスマホアプリだけど、本当の電卓もあるからお小遣いためて自分で買いな、とそそのかす。
スマホだったら、安いのは2万円出せば手に入る。
本物の電卓だと、3万円くらいするかなー、と。
このとき、「本物」として僕の頭にあったのは、最近の関数電卓はグラフとか描けるんだなー、と数年前に調べたときのやつだった。
でも、単に計算ができればいい奴なら、もっと安く売っていたね。千円で十分買えた。
というのも、帰り道に買い物に寄ったスーパーの文房具コーナーに売っていたから。キャノン製で税込み990円だった。
うちの長男、釘づけ。パッケージ裏の説明を読んで、複素数も計算できる! と驚いている。
じゃぁ、-1 を√してもエラーにならないのかな、とかいろいろ聞いてくるが、その機種を買ってみなければそれはわからない。
さっき「自分のお小遣いで買いな」と理科ハウスで言った言葉を覚えていて、お小遣いで買いたいという。
まぁ、おもちゃを買いたいというよりずっと有意義な買い物だろう。
小学五年生、自分で貯めたお小遣いで、関数電卓お買い上げ。
家に帰って、わくわくしながら説明書を読んでいる。
複素数を使うには、複素数モードにする必要があった。じゃぁ、-1 は、実数部が -1 、虚数部が 0 ということで…√。
エラーになった。複素数の√って、実数のルートと意味合いが変わってくるからね。
モード切替した時点で、√は使えなくなるようだった。
しかし、それは些細な事。
最近円周率を 20桁まで暗記していた長男、πボタン一発で10桁の円周率が出てくる、ということに喜ぶ。
Sin / Cos が、デグリーでもがラジアンでも計算できることに喜ぶ。
計算式通りに入れれば、優先順位も考慮して正しく計算してくれることに喜ぶ。
ともかく、長男にとってはとってもわくわくするおもちゃのようだ。
今朝は、「算数好きの友達に自慢する!」と言って、いつもより早く学校へ行った。
自分も小学生の時に初めて「自分の電卓」を手に入れてうれしかった覚えがあるので、電卓をおもちゃとする嬉しさはよくわかる。
僕の場合、父が仕事で使っていた古い電卓を譲り受けただけで、特別な機能はなかったけど。
#今は懐かしい FL 管のもので、内部計算が常に表示されている。
掛け算程度なら瞬時に出るけど、√キーを押すと、激しく動く数字が見られて楽しかった。
同じテーマの日記(最近の一覧)
関連ページ
シーモア・パパート 誕生日(1928)【日記 16/03/01】
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
今日は、クララ・ロックモアの誕生日(1911)
この人は知っていたのに、そう言えば誕生日を調べていませんでした。
今朝、Google Doodle になっていて知った。
電子楽器の始祖とされる「テルミン」の最高の演奏者であり、その楽器の作成者であるテルミン博士の一番の理解者でした。
テルミンについても、その最高の奏者であるクララさんについても、テルミン博士の誕生日に詳しく紹介しています。
詳細はそちらをお読みください。
テルミンって、古臭い、奇妙な楽器…ではないですよ。
テルミンの原理を元に、モーグ博士が世界最初のシンセサイザーを作っています。
その後類似のシンセサイザーを作るメーカーがたくさん現れるけど、ヤマハはデジタル化した。
FM音源ですね。その音源を搭載したキーボード、DX-7は今でも名機と呼ばれます。
で、同じくヤマハが開発した、歌うシンセサイザー技術「ボーカロイド」を商品化する際に、DX-7 を擬人化したイメージのイラストが使われた。
これが初音ミクです。
ほら、ちゃんと現代に繋がった。
#お、当時のクララ = 現代のミク という妙な図式が思い浮かんだ。
僕のイメージするクララはおばあちゃんなのだけど、若いころはきれいな人だったそうです。
楽器としてのテルミンや、テルミン博士についてはいろいろと知られているのですが、クララさんの生涯についてはあまり情報がありません。
まぁ、Wikipedia とか見れば少しは情報はあるのだけど、本当に少し。
以下、細かな情報と、僕の記憶(怪しいもんだけど)をつなぎ合わせて、クララさん視点で追ってみます。
テルミン博士はロシア生まれ。
電気工学の博士で、テレビなどの開発も行っています。
人が近寄ったことを感知する「近接センサー」の開発中に、これで音楽を奏でられることに気が付きました。
その後、ヨーロッパへの演奏旅行を経て、アメリカへ。
アメリカで研究所を設立し、電子楽器の研究を続けます。
ここで、クララ・ライゼンバーグと知り合う。
ライゼンバーグは、クララの旧姓ね。
クララは子供の頃にバイオリンを習っていましたが、病気がもとで断念しています。
でも、優れた音感の持ち主でした。
テルミンは演奏が難しい楽器ですが、自由な周波数…音階ではなく、自由な音が出せるという点でバイオリンに近いです。
実際、多くの人がテルミンをバイオリンのように扱います。
しかし、クララはテルミンの演奏法を独自に研究し、テルミン博士に改良を要請し、テルミンでないとできない素晴らしい演奏を行うまでになります。
テルミン博士は、彼女に何度かプロポーズしたそうです。
でも、クララは博士とは結婚していません。
だって、博士はすでに結婚していたのですよ!
ソ連で結婚して、家族一緒にアメリカに来ているのです。
しかも、どうも博士は女癖が悪かったらしい。
電子音楽に興味を持ち、博士にコンタクトを取ったバレエ団がありました。
このバレエ団のプリマドンナ(看板バレリーナ)と恋仲になり、妻と別れて再婚しています。
アメリカにもソ連人を中心としたコミュニティがあり、博士はそのメンバーでもありました。
そして、プリマドンナとの結婚に周囲は反対していて、結婚後はコミュニティから半ば離脱した状態に。
クララは、法律家のロバート・ロックモアと結婚。
クララ・ロックモアを名乗り始めたのはこの後です。
そして、テルミン博士はある日急に姿を消します。
皆にお別れを言うでもなく、本当に音信不通。
そのまま 50年の時が立ちます。
テルミン博士は、ソ連の秘密組織 KGB に拉致され、ソ連に強制送還されていました。
…となっているのですが、博士が借金で苦しんでおり、自分から送還を望んだのだという話も。
ここら辺、はっきりしないです。多分どちらも本当なのだろうね。
KGB は、優れた工学博士であるテルミン博士を連れ戻したかったし、テルミン博士は戻っても良い頃合いと感じていた、ってところなのでしょう。
今の若い人にはわからないかもしれないけど、当時のソ連は恐ろしい国でした。
技術力は高かったのよ。民間主導のアメリカと違って、何かをやるときは国が一丸となって達成する。
だから、当初の技術力は非常に高いのです。
当時のソ連は、すべてを国が主導する。民間主導のものなんて、基本的にない。
この結果、企業間競争もないので、だんだん技術力が落ちて行ってアメリカに抜かれるわけだけど。
そして、「国のため」という大義名分のためには、平気で人を拉致するし、歯向かう人は抹殺されるし、それでいて外には全然情報が出てこない。
だから、テルミン博士がどこに消えたのか、誰もわかりません。
ソ連に帰ったのかどうかすらわからない。もしかしたら、ニューヨークの路地裏でたまたまチンピラに絡まれて殺されてしまった、というだけかもしれない。
たしか、映画「テルミン」を撮った監督は、クララの親戚だったか、親戚の友達だったか、ともかくクララとたまたま接点のあった人なのだそうです。
すでに「テルミン」という楽器も忘れされれていたけど、クララの演奏を見る機会に恵まれた。
そして、すでに演奏者はほかになく、演奏すること自体が難しく、年老いたクララだけがこの楽器を守り続けているのだ、と知ります。
そして、このスゴイ事実に巡り合えた幸運を喜び、映画作品としてクララさんの演奏を残したい、と考えます。
記録映画とするために、古い写真と当時を知る人も証言をもとに、テルミンの歴史などを再構成。
もちろん、最高の演奏者であるクララさんの演奏も途中に挟まれます。
そして、当時ペレストロイカ(情報公開政策)を進めていたソ連から、テルミン博士を探し出し、クララさんと再会を果たします。
「テルミンのことを記録したい」という動機で気軽に作られ始めた映画が、50年間音信不通だった博士を探し出し、再会を果たすという、作る側も予想しなかった結末へと進んだのです。
この映画が公開される前に、テルミン博士は亡くなります。
そして、5年後にはクララさんも亡くなります。
日本で映画が公開されたのは、アメリカでの公開から8年後。
お二人とも亡くなった後でした。
しかし、亡くなる前に再開を果たせてよかった。
心からそう思います。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
今日は、オーレ・キアク・クリスチャンセンの命日(1958)
LEGO 社の創業者です。
2年前に誕生日記事を書きました。
なので、どんな人かはそちらの記事参照。
その記事の最後で、LEGO とデュプロの互換性について「解説はまた別の機会に」と書いたままになってました。
というわけで、解説したいと思います。
…が、この話、言葉だけではうまく伝わらない。
写真があっても、接続すると接続部分は内部に隠れてしまうので、伝えられない。
上手なイラストがあればわかるかもしれませんが、僕はそういう絵は描けない。
…というわけで、かなりわかりにくいと最初に謝っておきます。
まず、前回の話のおさらいから。
LEGO ブロックは、いくつかの基準サイズがあり、各部がこの基準に従うように、非常に厳密に作られています。
たとえば、ブロック上の凸部。レゴを裏返した時に見える「パイプ」の中の穴と同じサイズです。
といっても、レゴはパイプの穴と凸が組み合わさって組み立てられるわけではないですよ。
なので、このサイズは直接的には無関係。
でも、穴に入れること「も」できる。
凸1個分しかないサイズのブロックを使えば、普通とは少しだけずらした位置にブロックを置ける、ということを意味します。
レゴの人形の手の外側の径は、凸と同じです。
なので、人形がブロックを持っている、という演出もできる。
裏のパイプの外側の径は、凸を2×2に並べたときの、中央にできる隙間にぴったり収まるサイズです。
というか、もともとそこにパイプがハマることでレゴは固定されます。
レゴブロックには、凸1個分のサイズの小さなブロックの円筒形もあります。
この円筒形の底の部分は、パイプと同じ構造。凸にはめることもできるし、凸の間にはめることもできる。
ちなみに、凸の間の隙間は、薄いブロックの厚みとも同じ。
だから、薄いブロックを凸に挟む、なんていう、普通とはちょっと違うつなぎ方もできます。
他にもいろいろと「思わぬところに繋げられる」面白さがあるのですが、ここら辺は以前も書いたこと。
今回は、デュプロとプリモ(ベビー)についても書きましょう。
デュプロは、レゴの2倍サイズのブロック。
デュプロとは、Double 、2倍の意味です。
縦の大きさが2倍。横の大きさも2倍。高さも2倍。体積では8倍ですね。
デュプロは、レゴとは少し見た目が違います。
凸部が、単純に出っ張っているのではなくて、円筒形になっているの。
それと、薄いブロックが本来の高さの半分になっている。
LEGO は3分の1なのね。このため、薄いブロックを凸部の隙間に立てる、という繋げ方は出来なくなった。
厚みが変わったのは、実は内部構造が少し違うためです。
LEGO は、裏に入っているパイプが、ブロックの底のぎりぎりまで来ています。
でも、デュプロでは、パイプが少しだけ短い。その短いパイプに届くように、凸部が少し高い。
結果として、3分の1の薄さにはできない構造になっている。
単純にサイズを2倍にしただけのはずなのに、なぜこんな細かな違いが?
…ここが、デュプロの良くできているところです。
凸部の円筒形の穴の中の径は、LEGO の裏のパイプの外の径とぴったり同じです。
これにより、2x4 の、一番標準的な LEGO ブロック(裏のパイプは、凸の隙間に入るため2本)を、デュプロの凸2つの部分の上に載せるように接続できます。
また、デュプロブロックの「壁の厚み」は、LEGO ブロックの高さの6分の1になっています。
3分の1の高さの薄いブロックは、LEGO の凸の隙間に入るのでした。じゃぁ、6分の1は?
「LEGO の凸の隙間に、壁が2枚入る」で正解。
裏のパイプは、少し長さを短くしているため、LEGO の凸には干渉しません。
これによって、LEGO の上にデュプロを載せて接続できます。
言葉で説明すると長いし、写真を出したところで理解しにくい。
(つながっているときは、巧妙な部分は隠されているから!)
でも、非常に巧妙な方法で、LEGO とデュプロは相互接続可能な互換性を保っているのです。
全然サイズが違う商品だし、最初からこうした仕組みを考えていたわけではない(デュプロはずっと後に発売された)のに、最初から単位系をしっかり考えていたからできた芸当だと思います。
じつは、デュプロのさらに2倍サイズでデュプロと接続できる「クワトロ」というのも一時期発売されていました。
1歳の赤ちゃんでも遊べる、という触れ込みだったけど、そもそも「ブロックを接続して形を作る」というのは、1歳の子が興味を持つことではない。
そんなわけで、今は発売していません。僕も見たことありません。
LEGO 、デュプロ、クワトロを接続した写真が出ているブログを見つけたので紹介しておきます。
さて、クワトロは1歳の子が興味を持つような遊びではなかったのだけど、LEGO ベビーという1歳児向け玩具もあります。
以前は「プリモ」という商品名だった。「最初の」という意味の言葉ね。
プリモはブロックおもちゃだったのですが、ベビーのブランドは、プリモを含む赤ちゃんおもちゃ全般です。
なので、ここではベビーブランドの中のブロック製品、という意味で、旧称のプリモで呼びます。
プリモの基本サイズは、デュプロの2倍、です。
つまりはクワトロのサイズなのですが、プリモではあくまでも「基本」というだけ。
というのも、プリモは、3か月の子供でも遊べるように、できるだけ丸く作ってあるのです。
なので、2倍サイズだけどきっちり2倍ではない。ブロックのように組み合わせて形を作ることは考慮していない。
基本的には円筒形。そして、円筒の頭に、半球型の凸があります。
円筒の底に、この凸を入れる形で組み合わせられます。
もうね、ブロックではないです。
組み合わせられるといっても、1歳未満児向けが遊べるように、かなりゆるゆる。形なんか作れない。
逆さまにすれば落ちるし、ただ積み上げていても途中から曲がってくる。
でも、基本的な円筒形ブロックは、中にビーズが入れてあって動かすとカラカラ音がするの。
子供と遊ぶ時は、親が積み重ねてあげる。
それを子供が軽い力で叩けば、緩い接続なので、すぐ崩れてバラバラになる。
中にビーズが入っているのですごい音がする。
赤ちゃんって、こういうの大好きです。
まだ手足を動かすのも自由ではなくて、狙った通りのことが起きるだけでうれしい段階。
「崩すぞ」って思って崩せるだけで大喜びです。
やがては、自分で同じ遊びをしようとして積み上げ始めます。
目的は崩すことなので、高く積み上げられずに崩れても楽しい。
ちゃんと「最初のブロック遊び」の導入として、赤ちゃんが楽しめるように作ってあります。
他にも、円筒形ではない、いろんな形のブロックを、同じ形の穴の開いた箱に押し込む「ぽっとん遊び」とかができるセットもあります。
そしてデュプロと接続できます。
デュプロの上にある凸部の、 2x2 の部分が、プリモの円筒の内側にぴったり内接するように作られているの。
ただし、「繋げられる」だけで、構造物に組み込もうとするのは難しい。
先に書いたように、キッチリ2倍ではないので、周囲のブロックと干渉しやすいから。
面白い形を一部に入れて、飾りに使う程度に考えておいた方がいい。
逆に、プリモの上にデュプロを載せることもできます。
…けど、これはちょっとおもしろくない。プリモの円筒の上に、デュプロの凸をつけてある特殊ブロックがある、というだけの話。
相互に互換性があるのではなくて、変換コネクタがあるということですね。
デュプロの上にプリモ、は互換性があるけど、プリモの上にデュプロ、は変換コネクタが必要、という一方向の互換性です。
今回の話、写真などではなくて、実物を見て自分で組み合わせながら読まないと理解できないな (^^;;
ずっと以前から書きたかったのだけど、どんな方法で書いても伝わりにくいと気づいて書かなかった、という話でもあります。
まぁ、細かなことがわからなくても、LEGO ブロックってよくできているんだな、ということが伝わってくれればいいです。
同じテーマの日記(最近の一覧)
関連ページ
オーレ・キアク・クリスチャンセンの誕生日【日記 14/04/07】
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
全く別の2つの話を読み、自分の中でつながったので1本書く。
1つ目。
ツイッターで、「昔のモデムにリダイヤル規制が付いたときがあって、オムロンの Z80 を使用したモデム用のパッチが出回ったので、みんなそのモデム買って ROM 書き換えた」という話題を見た。
先日パソコン通信時代の話を書いたのだけど、この話題はすっかり失念していたな。
そんなパッチが出回ったことは知らなかったが、リダイヤル規制は知っている。
モデムという機器は、パソコンと音声電話回線を接続する機器だった。
普通の電話と並列につなぐことができ、モデムを繋いでも電話として使うことができる。
ここで、パソコンからコマンドを送ると、任意の電話番号に電話をかけられる。
音を認識することで、話し中とか、かかったとか認識することもできるので、つながらないなら即リダイヤル、という自動化ができる。
ところで、今ではライブのチケットなどを WEB で買えるが、当時は必ず電話する必要があった。
しかし、人気のチケットなどは電話回線が込み合い、つながらない。
そこで、パソコンを使ってひたすらリダイヤルする。
繋がったらすぐに受話器を取れば、そのまま会話ができる。
しかし、これが余裕のない電話回線をさらにパンクさせる、というので問題になった。
そして、リダイヤル機能がある装置には、必ず「1分間は同じ番号にかけられない」という規制がかかることになった。
先に書いた話題は、この規制を嫌って、モデムのファームウェアを書き換えたよ、という話だった。
でも、そんなややこしいことしないでも、簡単に規制回避できた。
当時は多くの人が知っている常識で、規制の意味は全くなかったんだ。
この話は、また後で続ける。
2つ目。
4月になって新入社員が入ってきたが、得意先の8桁の電話番号を見せたところ「番号が少ない」と言われた、という話。
あー、そうか。携帯電話だと、必ず11桁くらいの番号になるからね。
すでに固定電話の方法がレガシーなので、知らない人を笑うべきではないと思う。
でも、これを機会に電話番号のしくみは知っておくといいかもしれない。
今、これを読んでいるあなたは、固定電話の電話番号のしくみを理解しているだろうか?
固定電話は、市外局番、市内局番、加入者番号の3つのパートで電話番号が作られている。
同じ市内(厳密にいえば、同じ市内とみなされる電話局)の中では、市外局番がいらない。
先に書いた「8桁程度の番号」は、市外局番を省いたものだった、ということだ。
この程度は知っている人が多いだろう。
市外局番は、必ず 0 から始まることで認識できる。
ちなみに、1 から始まる場合は3桁の短縮サービス番号となる。110 とか 119 とか、189 とかね。
ということは、市内局番は必ず、2~9 の数字で始まる。
ところで、加入者番号は通常4桁だ。
1つの局…交換機に、0000~9999 の 10000 台の電話回線を収納できるということだな。
市内局番の長さは、不定。
なぜなら、電話の契約が多い(普通は世帯数の多い)市では、交換機がたくさん必要だから、番号も長くなる。
逆に、交換機があまり必要ない小さな市なら、市内局番は短くていい。
そして、市外局番も不定。
よく使われる大都市なら短い局番が便利だけど、あまり使われないところなら長くてもかまわない。
逆にいえば、市内局番の長いところは、市外局番を短くしないと不便。
市内局番が短い田舎なら、市外局番が長くてもかまわない。
そんなわけで、電話番号全体としては、大体10~11桁になっている。
携帯電話などは、特殊な「市外」として全体の番号を割り振った形だ。
市内局番は、ドコモや au 、ソフトバンクなど、キャリアごとに割り振られたので、市内局番に当たる電話番号を見ればキャリアがわかった。
ただし、現在は番号ポータビリティ制度があるため、電話番号だけでキャリアを判別することは出来ない。
さて、ここからが大切な話。
市外、市内局番の長さは不定だ。「ここで終わり」というような信号はない。
ただし、市外局番と市内局番は、頭の数字で見分けられる。
家の電話が接続された交換局では、最初に押された数字によって、市内の通話か、市外の通話かを見極める。
ここで、 0 から始まったとしよう。市外だ。長距離回線を使って、遠くの交換局と接続しなくてはならない。
0 の次が 3 なら…ここで終了だ。03 は東京だから、かけるべき都市が決定する。
でも、4 なら決定できない。04 は「東京以外の南関東地方」としかわからない。
044 なら川崎。東京ほどではないが、大都市なので3桁の短めの市外局番が割り振られている。
同じように、045 なら横浜市だ。
でも、046 ならまだわからない。神奈川のどこか、とまでは判別できるのだけど。
さらに続く番号を見て、0467 だと、やっと藤沢局だと判明する。
もっと長い市外局番だってある。
例えば、01 は基本的に北海道・東北地方なのだけど、01267 は岩見沢局の市外局番だ。
同じように、市内局番も「判明するまで」続く。桁数の規定はない。
ということは、だ。
電話番号が何桁になるかは、その電話番号によって交換局の中継を動かしている、電話会社にしかわからないことになる。
ちなみに、相手の番号が確定した後に電話番号の入力を行っても、相手にその音が伝わるだけで、電話システム的には何も起きない。
(書き忘れたが、電話番号は音として伝えられる。)
普段気にしていないが、これが非常に大切なことだ。
モデムのリダイヤル規制の話に戻る。
規制は、「同じ番号に1分以内にかけられない」というものだった。
でも、番号の桁数をモデムが知ることは出来ない。
先に書いたように、電話番号の桁数は複雑な方法で決まっていて、電話会社しか知らないからだ。
そして、桁数が多すぎても、相手に余計な音が伝えられるだけで、電話システム的に問題はない。
じゃぁ、モデムで電話をかけるときは、1桁多く番号を入れてしまえばいい。
規制は「装置」にかけられたので、モデムには規制する仕組みが入っていた。
でも、パソコンのソフトは規制外だったから、掛けたい番号に1桁自動的に追加して、連番でリダイヤルするソフトを作っても何も問題はなかった。
実際多くのパソコン通信用ソフトがこの機能を持っていた。
規制は最初からザルで、何の意味も持たなかったんだ。
以下は余談。
電話番号は音として伝えられる、と途中に書いたけど、電話をかけていないときでも、最寄りの電話局までの電話は常に繋がっている。
だから、ボタンを押したときの音、またはダイヤルを回した時のパルスを最寄りの電話局まで伝えられる。
そして、その音やパルスによって、交換機が動作して、別の電話に回線をつないでくれるんだ。
じゃぁ、電話のボタンを使わないでも、同じような音を通話口に流し込んだら、電話をかけられるか?
もちろん、掛けられる。
今の携帯電話では、電話帳機能が付いているのが普通だ。携帯電話は個人の持ち物だから。
でも、固定電話や公衆電話は個人の持ち物ではなかった。
そこで、個人でも「ダイヤラー」という、電子電話帳を持っている人がいた。
ダイヤラーは、電話のプッシュボタンと同じ音を出す機能を持っている。
掛けたい相手を選んで、受話器の通話口にダイヤラーをくっつけて音を出すと、相手に繋がる。
電話のボタンを使わないでも、適切な音さえ出せばちゃんと電話できる。
昔は、交換局同士の信号伝達も音で行われたそうだ。
ただし、電話機からその音が混信すると問題があるため、電話機には高い音を通さない回路(フィルタ)がつけられている。
交換局同士は、来るはずのない高い音で信号を伝達した。
じゃぁ、電話機のフィルタを外してしまい、高周波を出すとどうなるか?
これをやったのが、初期の電話ハッカーたちだ。
上手にやると、電話の課金情報を混乱させ、ただでかけることができる。
または、国際電話で地球を一周して、隣の部屋に電話をかけられる。
「キャプテン・クランチ」というシリアル商品のおまけについてきた笛が、ちょうどその高周波を出せた。
ジョン・ドレイパーはこのことを発見し、笛の音を使って電話システムのしくみを解き明かしていった。
彼はキャプテン・クランチというニックネームで呼ばれ、伝説となった。
#「今日は何の日」でこの人のことを書きたいのだけど、誕生日がわからないので書けないでいる。
Apple 社のジョブズ&ウォズも、回路的に同じことを行う、自動ただがけ装置を作成し、販売していた。
キャプテン・クランチが「システムを解体した」のに対して、彼らは成果を使って商売をしただけだけど。
パソコンが一般化する前、電話システムというのは、一番身近なブラックボックスだった。
ブラックボックスがあれば、入力に対する出力を調べ、中身を推察してみたい。
君はそうは思わないか?
電話ハッカーたちは、決して電話代をくすねたかったわけではない。
ただ、システムを調べたかっただけなんだ。
モデムのリダイヤル規制を無意味にする方法なんて、電話のただがけのような違法性の高い方法に比べれば、かわいいものだと言える。
でも、電話システムをちゃんと理解していないとできないことだし、電話ハッカーの名残を感じる。
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
3年ほど前に購入したPC用のキーボードが調子悪い。
…って書き出しは、3年前にやったのだな。
あの時は、その2年前に購入したPC付属のキーボードが壊れたのだった。
壊れたというか、入力時にキーが引っかかる感じになるのね。
接触不良とかの電気的なトラブルではなくて、キーを支える軸がぐらつき始めて正しく入力できない感じ。
今回も同じ。
PC付属キーボードは、安PCについてくるものだからかなり安物なのだろう、仕方がないと思った。
でも、今回は別売りキーボードを買ったのにたった3年で壊れたのだ。
もっとも、安いからそのキーボードを選んだわけで、安物であることは認めるのだけど。
たしか、1200円程度だったのではなかったかな。
よく使うキーの印刷も剥げ、つるつるになっていた。
キーボードにこだわりはないが、普通の 109jp キーボードであっては欲しい。
子供のころから JIS 配列なので、US 配列はあまり好きではない。
仕事で仕方なく使っていた時期もあるので、絶対ダメなわけでもないのだけど。
有線キーボードがいい。
置きっぱなしで使うから無線である必要はないし、無線だと高いし、電池交換が必要になるから。
今使っているPCに付属してきた(早々に壊れた)キーボードは、Insert/Delete/Home/End/PageUp/PageDown の6キーの配列が変則的だった。
僕はそこら辺のキーは結構使うので、できれば通常の並びがいい。
カーソルキーも、その下に普通に並んでいてほしい。
まぁ、つまりは「普通のキーボードがいい」と言うだけだ。
何も難しいことではないはず。
…なのだけど、今の世の中これが案外難しい。
先に書いた6キーって、使わない人多いから小さくまとめて別の場所に配置されたりする。
カーソルキーだって使われないから変則的な並びにされたりする。
「ごく普通」を望んでいるだけなのに、案外ゲーミングキーボードとかが悪くなかったりする。
ゲームに使うときって、一瞬の判断を必要とするから、キーが普通に押しやすい配置でないといけないんだよね。
でも、ゲーミングキーボードは高いからパス。
しっかりした会社のいいキーボードを買えばいいとわかっていても、1万円越えはパス。
キーボード会社だって、差別化を図って高い商品を売りたい。
そんな当たり前の理由で、無線キーボードには結構いいものがあるのに、有線キーボードには商品が少ない。
そうして、どんどん選択肢が狭くなっていく。
いっその事今まで使っていたキーボードと同じものを買おうか、とも思った。
ロングセラー商品でまだ売っている。1000円程度だから、3年使えればそれでいいと思う。
でも、せっかくだから違うのを選んでみたい。
ということで、Microsoft の Wired 600 キーボードを購入。¥990.-
この型番、「マイクロソフトの一番安い有線キーボード」という意味合いの型番で、同じ型番のまま時々モデルチェンジするらしい。
今回購入したのは Windows8 対応版。Win10 にも対応している、と上からシール張ってあったけど。
何が Win8 対応なのかと言うと、まずは Windows キーのアイコンが Win7 までの「ぐにゃりとした」ものではなく、直線的。
Win8 から出てきた「共有」のためのキーが印字されている。
印字されているだけで、Fn + F6 キーなのだけど。
他に Fn + F5~F8 でいろんな機能を呼び出せる。
そう、109 のフルキーボードなのに、さらに Fn があるわけだ。
でも、この Fn キーは、F5~F8 以外には使わないようだ。
せっかくだからもっといろいろ使えればいいのに。
まぁ、普通は使わない右 Win キーを Fn に割り当ててあるので、邪魔にはならない。
あと、キーボードに音量調節ボタンがある。音量アップ・音量ダウンと、ミュート。
そして「再生・一時停止」のキー。
もう一つ「電卓」のキーもある。
電卓キーを押すと、Windows 付属アプリの電卓が起動する。
…まぁ、便利と言えば便利かな。
驚いたのは、109jp に存在しない特殊なキーなのに、デバイスドライバなしで動作したこと。
マイクロソフト製なので、単に Windows の中にあらかじめ組み込まれている、と言うだけの話だけど。
同じように、音量調節も、Fn + F5~F8 も、何もせずにそのまま動作する。
でも、再生・一時停止キーは何も動かない。
このキーは、Windows は認識しているが、Windows 純正の音楽アプリ・映画アプリなどが起動していないと動作しない。
僕は普段 Windows で音楽を聞かないので、このままでは無意味なキーだ。
キーの割り当て変更には、マイクロソフトのページで設定ソフトをダウンロードする。
電卓キーと再生・一時停止キーには、好きなアプリの起動を割り当てられる。
または、キーボードマクロ(一連のキーを順次押す処理。マウスボタンや時間間隔も設定できる)を割り当てられる。
または…用意された、非常にたくさんの処理を割り当てられる。
用意された処理は、もちろん音楽アプリでの再生・一時停止もあるけど、次のトラックへ、なんてのもあるし、ブラウザの戻るボタン、なんてのもある。
指定された URL を開く、というのがあったので、Google Calendar を指定してみる。
結構よく使うのだけど、今までは Chrome で新規タブ開いてから、Bookmark を選んで呼び出してた。
うん。確かに1発で開く。ちゃんと Chrome を使ってくれる。
上手く使えばなかなか便利なキーかもしれない。
しかし、せっかく設定ソフトがあるのに、設定できるキーは2つだけ、というのが少しもったいない。
先に書いたけど、Fn キーあるのだから Fn + なんとか、でいろいろ設定出来たら楽しかったろうに。
設定ソフトには、他にもささやかな機能が付いている。
Caps Lock を無効化できる。
時々、間違えて打ち込んでしまって大文字になることあるよね。それを禁止できる。
でも、僕は故意に大文字を使いたいときもある。禁止はしないでおこう。
Win キーも無効化できるし、アプリケーションキー(Menu キーとも呼ばれる)も無効化できる。
Win もアプリもマイクロソフトが「増設」したキーで、今では多くのキーボードについているのだけど、邪魔だと思う人もいると、ちゃんとわかっているらしい。
とはいえ、無効化して別の用途に、とはなっていない。
じゃぁ、無効化するのもなんかもったいないから活かしておこう。
MS 600 キーボード、キーの角度が段によって少しづつ変えられていて、手になじむ。悪くない。
キーを押した感触も悪くない。
まぁ、もちろん高級品ではないよ。安物として悪くない、という感じ。
#個人的には、高価なのに安っぽい Apple のキーボードよりも高評価。
ただ、明らかにダメな点が一つ。
F1~F12 、およびその列に並ぶ ESC / PrnScr / ScrLk / Pause キーの押し心地が非常に悪いのだ。
キー自体が小さめで、押した感触も固めになっている。
ということは、ここら辺のキーは「特別なもので、普通は触らない」ことを前提にしたキーボードなのだろう。
事実として、初心者はここら辺のキーは使わないと思うし、うかつに触って知らない動作が起きると混乱すると思う。
でも、僕はこれらのキーをよく使う。
文字入力中もカナにするのに F7 を押したりするし、Vim や Emacs を使うこともあるので ESC を酷使する。
固くて押しにくい、という評価を知ったうえで、それでも他に良い選択肢がなくてこのキーボードを選んだ。
十分吟味した結果なので他に選択肢はなかった、とあきらめているのだけど、もっと「ごく普通のキーボード」が市場に存在するといいと思う。
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
毎年恒例の JAMSTEC 一般公開日。
今年も行ってまいりました。
始めて行ったの、もう10年前になるんだな。
そのころは職員食堂しか解放されてなくて、食べるのに困りました。
最近は屋台も増えたのですが、ここ2年ほどは「深海ブーム」もあって、それでも食べるのは大変だった。
というか、最初の頃に大変だと知ったので、毎年お弁当を持って行っていきます。
…でも、今年は屋台に長蛇の列は出来ておらず、買おうと思えばすぐに買える状態でした。
見学できる場所も、例年よりも混んでいない。
どうやら、深海ブームはひと段落したようです。
ただ、10年前と違って展示内容は非常に幅広くなっているのね。
以前は、多少駆け足なら「全部見る」ことも可能でした。
でも、今は1日じゃ全部回りきれない。公開日は1日しかないのですが。
勢い、毎年大して内容が変わらないところは見ないことになります。
南部潜り実演とか、高圧試験槽とか、すっ飛ばす。
関連企業ブースは見たかったのだけど、見忘れてすっ飛ばした。
しんかい 6500もすっ飛ばす。今年は うらしま もいたみたいだけど、別に見ない。
でも、子供の要望でスタンプラリーは回ったし、コーラメントスによる「噴火実験」は見た。
毎年同じ実験なのに、子供には楽しいらしい。
今年の目玉は「かいれい」の公開。完成したばかりの新造艦です。
「ちきゅう」ほどの能力はないけど、40m のコアサンプルを、12000mの海底から採取する能力があるらしい。
そのために、ちきゅう と同じように船の位置を保つ、アジマススラスターも持っている。
巨大なクレーンで、海底の岩や泥を救い上げることもできる。
子供たちには「でっかい UFO キャッチャー」と説明した。説明は間違っていないと思っている。
かいめいに搭載された、超巨大UFOキャッチャー。
— wizforest (@wizforest) 2016年5月22日
そう呼んでは失礼だろうけど、船から海底までこのアームを下して、サンプルを引っ張り上げられる。
UFOキャッチャーと呼ばずしてなんと呼ぼう。
泥などを掬えるバケット型もあり。 pic.twitter.com/oUu7l9Aaay
船自体はそれほど多いわけではないのだけど、スペースを工夫していろんな機能を搭載している感じ。
それでいて、居住性も考えられているようで、操舵室も、食堂も、船室も、今までに見た別の船より広い(と思う)。
その分、船の階層が増えているようで、エレベーターまでありました。
かいめい にはエレベーターもついているのだけど、この表示。
— wizforest (@wizforest) 2016年5月22日
普通のエレベーターのような、1階、2階という表示ではない。 pic.twitter.com/MXHVHQnFB7
さすが最新鋭の船で、船内 WiFi 完備。
そして、WEB ブラウザでアクセスするだけで、操舵室に行かなくてはわからない、船の現在地や向いている方向、傾きなどの情報を得ることができる。
これ、すごいと思うのだけど、すごさに気づいている人少なかったみたい。
タブレット端末を整然と並べてデモンストレーションしていたのだけど、整然としすぎて、そういう「コンソール」が置かれているだけに見えてしまうのね。
Jamsetc一般公開で、新造艦の「かいめい」が公開されていた。
— wizforest (@wizforest) 2016年5月22日
驚いたことの一つ。船内のどこででも、LANで操舵室の情報を見ることができる。
試しに自分のスマホでWiFi表示したら、kaimei-wlanがあった。 pic.twitter.com/5zHwSnNMwP
WiFi でアクセスできる…と説明を読んで、自分のスマホでも見てみました。
kaimei-wlan という WiFi 基地局が見えましたが、パスワードで保護されていて、アクセスは出来ませんでした。(当然)
どうでもいい話。
「かいれい」から下船したところで、郵便局の方が記念切手売っていました。
JAMSTEC の切ってもあるし、近くの海上自衛隊のものもある。とにかく船の切手です。
(「はいふり」こと、ハイスクール・フリートの切手もあった。でも、僕このアニメ知らない)
ここで、小さい子向けに飴玉配ってた。
「どうぞ」と言われて、じゃぁ一人ひとつづつもらっときな、と子供に行ったところ、「一つと言わず、一掴みで取れるだけいいよ」と。
どうも、その場にいた偉い人が独断で言ったらしくて、他の職員は一瞬「えっ?」って雰囲気になった。
でも、その人が「いいじゃん。一度やってみたかったんだ」と。
一番小さい次女が最初に挑戦。
…一掴みで、20個くらいとれました。個包装された飴玉だから、思い切り握ると袋の端が指の隙間に入り、たくさん持ち上げられる。
「うわ! 思ったより取れるなー」と偉い人。
申し訳ないので、これだけもらえば十分、と長男と長女は取らないように制しました。
多分、つかみ取り最初で最後だよね。
研究室へ。
例年、研究室を公開して実験などを見られます。
超臨界水とか、超臨界水を使った MAGIQ乳化とか、被写界深度を利用して凹凸の高さを測れる顕微鏡とか、過去に変わったものをいっぱい見せてもらってきた。
…でも、残念ながら今年は研究室には入れないようになっていました。
研究室前の廊下に張り出された研究成果を見て回るだけ。
今年一番興味を引いたのは、ゴエモンコシオリエビの飼育条件がわかった、という話。
いままで、飼育条件がわからずにすぐに死んでしまっていたのが、1年以上飼うことに成功したそうです。
条件がわかれば水族館とかで見ることもできるようになるわけだけど、それ以上に「極端な環境下で、生命がどのように維持されているか」がわかることがスゴイことです。
ゴエモンコシオリエビの場合、深海の熱水鉱床で生息しています。
海底の火山で温泉が湧いている環境。
そこで生きるのに必要なのは、この温泉の「熱」なのか、火山からいろいろ出ている「成分」なのか、それとも火山に集まる他の生物なのか…
可能性はいろいろあるわけです。
飼育条件がわかった、というのは、この多数の可能性の中から、利用している要素が絞り込めたということ。
ゴエモンコシオリエビは、食べ物もない環境で、自らの腹毛に硫化水素を栄養にできるバクテリアを増殖させ、そのバクテリアを食べて生きています。
そのバクテリアの増殖に必須なのは、硫化水素の濃度だけで、温泉の熱などはあまり関係なかったそうです。
研究室前の廊下で、チェン氏の講演を聞きました。
鉄で体を作る唯一の生物、スケーリーフットの研究者で、学名にも氏の名前が付けられています。
氏は子供のころから貝マニアで、スケーリーフットが発見されたときに深海の貝に強く興味を持ち、研究者になったそうです。
ここら辺の半生(と言っても、彼はまだ 26歳。この年でオックスフォード大学を卒業している!)を面白おかしく語った講演。
「マニアになると人生踏み誤るからやめといたほうが良い」というのが話の結論なのですが、どう考えても「そういう人生は面白い」と背中を押しているようにしか聞こえません。
いろいろ見ていたらあっという間に終了時間間際。
屋内展示をあまり見ていない、と慌てて本館に飛び込みます。
地球シミュレーターの紹介展示があり、そこでゲーム大会をやっていました。
地球シミュレーターでゲーム! 何て贅沢な! 何て才能の無駄遣い!
地球シミュレーターでは、地球に関する様々なシミュレーションが行われています。
海洋の流れの研究もその一つです。
ここで行われていたゲームは、刻々と変化する海の流れに乗せて、メッセージボトルを遠くへ届けよう、というもの。
日本の沿岸の好きな地点をスタートして、一番遠くまで流した人が勝ちで、商品も出ます。
終了間際で人も少なかったので、ゲーム内容もよくわからないうちに子供たちも参加。
最初に各自の色が決められ、画面上で好きな位置を示すことで、自分の色のメッセージボトルを投下します。
…という体で、Windows 標準の「ペイント」で、示された位置に色のドットをスタッフが置いていました。
おそらく画像が保存されて、ゲーム開始時にそこから色のドットを拾うんでしょう。
みんなが決めたところで、ゲームスタート。「3、2、1」とみんなでカウントすると同時に、スタッフの人がコンソールから「./a.out」を実行します。
a.out って、UNIX でプログラムを作るときに「特に名前を決めていない」と作られるファイル名ね。
1回限りのイベントで作った、どうでもいいプログラムという感じがすごく漂っている(笑)
地球シミュレータを使ったゲーム。
— wizforest (@wizforest) 2016年5月22日
なんという才能の無駄遣い!
日本沿岸でボトルメッセージを流して、より遠くまで流した人の勝ち、というルールなのだけど、潮の流れは刻々と変化するので、近くにおいても全然違うところに流れ着く。 pic.twitter.com/PLElpkRmQw
この後、太平洋の地図の上に、各色の腺が引かれていきます。ボトルの流れた軌跡です。
同時に、画面左上には各色の最初の地点からの直線距離が出ます。
距離が長い順に並ぶので、一目で現在の一位がわかります。
これが、よくできている。
たとえトップを走っていても、急に海の「渦」に巻き込まれてしまい、動きが止まってしまうことがある。
この渦は、いわゆるカルマン渦。刻々と変化し続けるので、すぐ後に同じコースをたどったボトルがあったとしても、同じ動きにはならない。
子供たちが参加したレースで動きを見て、僕と妻も参加します。
さっきのレースの動きを参考に置いてみましたが、先に書いたように海流が刻々と変化するので、わずかな初期位置の違いが全く違う結果を生み出します。
ある程度想像がついて、でも運任せ、というのが非常にゲームとしておもしろい。
ちなみに、地球シミュレータをリアルタイムに利用しているわけではないそうです。
あらかじめ計算した海流データを利用してゲームを作った、というだけ。
地球シミュレータ、いつの間にか第3世代になっているのね…
2002年に完成し、速度で世界一にもなった初代は、640ノードでした。
1ノードは 8CPU で、全体で 5120CPU 、41TFLOPS でした。
2009年に置き換えられた第2世代は、160ノードに減りました。
1ノードはやはり 8CPU で、全体では 1280CPU 。しかし、性能は3倍以上の 131TFLOPS でした。
昨年 2015年に第3世代になっていたそうです。なんと 5120ノード。
今まで、1ノードがロッカーくらいの大きさのコンピューターだったのに、ブレードサーバーになってロッカーくらいのサイズに多数詰め込んだ、ということですね。
1ノードの CPU は1個に減ったのだけど、実は4コア。今までは1コアだったので、CPU = コアとして考えれば1ノードが 4CPU 。
全体では 20480 CPU になり、性能は2代目の 10 倍、1.3PFLOPS。
ちなみに、「2位じゃダメなんですか」という名文句で開発中止にされそうになったスーパーコンピューター「京」は、10PFLOPS です。
想定する利用目的とかが違っていて、計算能力のほかに、データ転送能力などにチューンの違いがあるので、単純に比較できないのだけど。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
昨日の報道ですが、オセロ考案者の長谷川五郎さんが、20日に亡くなったそうです。
すぐに何か書こうと思ったけど、昨日は忙しくて書けませんでした。
僕は氏のことを全然知らない。
オセロの開発話は本やテレビで何度か見たことがあるし、それなりには知ってる。
でも、氏に対しての思いは特にない。
それで訃報を書くのもどうかと思うのだけど、オセロに関して思うところはいろいろある。
ちょうどよい機会だし、偉大な方だと思うので、自分の思い出を少し書こうと思う。
テレビゲームが子供の遊びの主役となる前、どこの家にも将棋やオセロなんかがあったと思う。
人生ゲームなんかもあるのだけど、あれは大人数で遊ぶ時用。
オセロなら、2人いれば十分で、しかも短時間で遊ぶことができた。
僕は兄弟が多く、兄や姉とよく遊んだのだけど、大抵は負ける。
小学校低学年の頃だったから、まだ論理性が身についていない。
オセロは、「多くとれる」ところを責めると、自分の色の駒がたくさん並んだ状態を作り出してしまう。
それは、とりもなおさず相手にとって「多くとれる」ことを意味する。
だから、闇雲に攻めちゃいけない。でも、そんなこともわからずに闇雲に攻めていたのだった。
小学校4年生の頃だと思うが、ゲームセンター向けにオセロのゲームがあった。
白黒画面で、○と×で駒を示しているやつ。
それを見たときは、「コンピューター相手にオセロができるんだ」とは思ったのだけど、お金を出してまでやろうとは思わなかった。
小学生にとって 100円は大金だし、オセロだったら家に持っているから。
#注:まだゲームセンターに小学生が行っても問題なかった時代。
よく、金もないのにゲームセンターに入り、人のプレイやアドバタイズを見るだけでわくわくしていた。
そして、小学校6年の頃だったと思う。
オセロの販売元のツクダオリジナルが、オセロを遊べる家庭用テレビゲーム機を発売していた。
実はセガ SG-1000 の互換機で、カートリッジを入れないときはオセロが起動するようになっている。
おもちゃ屋の店頭に、遊べる状態で置いてあったのだけど、この「人工知能」に対して…確か、強さを選べて、一番弱い場合だったとは思うのだけど…必勝法を見つけ出した。
コンピューターは、こちらが同じ手を出せば、全く同じ手を出してきた。成長がなかった。
それで、5~6手進めただけで、すべて自分の色になってゲーム終了、という手順があった。
この手順を発見して、その店の店頭を通るたびに、わざわざ「完勝」して、誇示するようにその画面のままにして去ったのだ。
コンピューター相手にオセロをやったのは、たぶんこれが初めてなのだけど、「コンピューター、馬鹿だな」と思っていた。
中学生になり、ファミリーベーシックを入手した。
面白くもないゲームを作ることが楽しかったのだけど、ある日ベーマガに「オセロ」のプログラムを見つけた。
他機種用。でも、人工知能ってとても高度なもので、BASIC で簡単に組めるとは思わなかった。
興味を持って、プログラムを読んでみるのだけど、何をしているのかどうも意味が分からない。
プログラムのほとんどは、オセロのルール…挟んだらひっくり返るとか、ひっくり返せない場所にはおけないとか、そういう細々したことを実現するためのものだった。
人工知能らしい、高度な部分はない。
人工知能の思考ルーチンはと言うと、盤面の中で「駒を置ける場所」を見つけたら置いてしまう、と言うだけ。
ただし、置ける場所の順番は示されていて、単にマス目を端から見ていくのではない。
ふーん、すると、この順番に何か秘密が隠されているんだな。
ファミリーベーシックに移植して遊んでみる。
そのプログラムは、それほど強くはなかったけど、適当に相手をしても勝てない程度には強かった。
石を置く順番…取るべき優先順位は簡単な話で、盤面の四隅は最優先。
その隣は、最も優先順位が低かった。
オセロでは「駒を挟むとひっくり返せる」というのが最重要ルールだ。
でも、隅にあると絶対に挟めないから、自分の駒を置くと相手にとられない。
安全地帯なのだから、何よりも優先して確保しなくてはならない。
そして、相手の駒を挟む形でしか新しい駒は置けない。
隅の隣に駒を置かなければ、相手に隅を取られることはないことになる。
だから、隅の隣を迂闊に取るのは悪手。優先順位を下げないといけない。
でも、単純に優先順位をつけるだけでは、「多くとれるところ」を見逃すことにもなりかねない。
プログラムを改良して、位置の情報に「優先順位」フラグを付けた。
置ける場所が見つかっても、同じ優先順位のところがまだあるなら、そちらにも置けるか試す。
一番多くの駒をひっくり返せるところの位置は覚えておいて、同じ優先順位の場所が無くなったところで、「一番良いところ」に駒を置く。
ちょっとした改良で、ちょっとだけ強くなった。
これを友達に渡して遊ばせたら「何度か遊んだけど一度も勝てなかった」と言われた。
僕が遊ぶと、アルゴリズムを知っていることもあって、これでもかなり弱い。
一度も勝てないはお世辞じゃないかと思ったけど、そいつは思考ゲームは嫌いだったので、適当に遊んだら勝てなかったのかもしれない。
まがりなりにもオセロの思考ルーチンを考えたことがあったので、興味を持ってはいた。
その後、たしか雑誌の「ログイン」で、森田和郎さんが「森田オセロ」の解説をしていた。
森田和郎さんというのは、当時の有名プログラマで、オセロとか将棋を作るのを得意としたのね。
もっとも、ゼビウスに類似したゲームを、当時の非力なマシンで作り上げて、ナムコの許可を得て販売したりもしている。
アクションゲームも十分作れるし、複雑な思考ゲームも作れる。凄腕のプログラマだった。
話がそれたけど、森田オセロでは、もちろん「駒を置く位置」も考慮しているけど、それでいくつの駒をとれるか、置いた駒の周辺に空きマスはないか(空きマスがあれば、そこに相手が駒を置くことでひっくり返されやすい)、など、多くのパラメーターに点数をつけることで複合的に置く場所を決めているという。
そして、何より大切なのが「先読み」だった。
駒を置ける可能性のある場所はいくつもある。
その中でどこに置くかを決めるのに上に書いたように点数を使うのだけど、一番高得点のところに置けばいいというものではない。
そこに置いたとしたときに、次に相手はどんな戦略をとれるか。ここでも得点を出し、一番高得点のところに置くとする。
じゃぁ、それに対して今度は自分は…これを数手繰り返せば、先読みができる。
たくさんひっくり返したけど、その次の手でそれを全部取り返される、なんて間抜けな手を打たなくなる。
森田和郎さんの記事では、αβ狩りも説明されていた。
ややこしいので詳細は省くけど、先読みの範囲を絞り込んで、効率よく最善手を見つけ出すための方法。
実は、先読みまでするオセロを試作したことはあるのだけど、未完成なまま飽きた。
大学の時に Lisp 言語を入手したのね。
Lisp なら人工知能だろうって、当時の浅い知識で短絡してオセロを作り出した。
先読みルーチンを作るには、「今の盤面の状態」を記憶したまま、次々と「先読みした盤面」を作り出す必要がある。
具体的にいえば、先読みのために1階層深くサブルーチンを呼び出すたびに、新しいメモリを確保して盤面を保持した配列をコピーしないといけない。
関数に対して配列が渡せれば簡単なのだけど、C言語ではそのようなことは出来ない。
もちろん、BASIC でもできない。そもそも BASIC にはサブルーチンはあっても関数はない。
でも、Lisp は元からそういう言語構造だった。
データは呼び出しの際にコピーされる。だから先読みプログラムを作りやすい。
で、先に書いた通り、未完成なまま飽きた。
Lisp に慣れておらず、何か処理しようとするたびに方法を考えないといけなかったし、そもそも Lisp は「人工知能のアセンブラ」と言われるくらい、アセンブラのように命令が貧弱だった。
(…という考え方が間違っているのは、今ではわかっている。でも当時の僕はそう思った)
それ以降、こうした思考ルーチンは面倒くさくて作ってない。
興味はあるから、それなりに話を追いかけてはいるけれど。
もう、長谷川さんの訃報とはほとんど関係なくなっているね。
以上、オセロに関する僕の思い出話でした。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
昨年末に買った Android 端末を、G.W. に落として画面を割ってしまった。
…いや、ひび一本で、奇跡的なことに普段使っている視野角だと、全く気にならない。
横からのぞき込むと割れていることがはっきりわかるのだけど。
気を付けないとなー、と思っていたのだけど、先日また落として、表面に貼ってあるカバーガラスシートの端が欠けた。
これで怖くなって、なんか対策出来ないかと考え始める。
以前使っていた Panasonic 製のスマホは、ストラップ穴があったのだけど、今使っているのはいわゆる「最近の流行デザイン」でストラップ穴がない。
唐突だけど、その昔 PT-110 っていう小さなコンピューターがあって、当時としてはあまりに小さかったので、落として壊さないように開発陣がストラップ穴をつけようとしたらしい。
でも、ストラップ穴をつけるのであれば、そこにストラップをつけた状態で「本体を振り回して問題がない」強度を確保しないといけない。
正しい強度か、試験する必要もあるのだけど、そんなことしていると開発コストに跳ね返る。
おそらく最近の安いスマホにストラップホールがないのも、同じ理由なのだろう。
PT-110 の場合、実は「自分でストラップ穴を作れる」ようになっていた。
本体の外側が薄いプラスチックになっている部分を少し削ると、内側の金型部分にねじ穴が開いている。
ここに、アクセサリー用の「ねじ穴付きループ金具」をつけてしまえば、ストラップがつけられる。
こういう、玉虫色の解決方法ないかな、って思うのだけど、みんなが同じことを始めたら玉虫色ではなくなるわけで、難しい。
調べたら、イヤホンジャックに差し込んでストラップ穴を作り出すアクセサリーが人気のようだ。
Plugy Lock 。
イヤホンプラグにゴムチューブを通した「小さなねじ」を差し込んで、このねじを回すことでゴムチューブを圧縮する。
すると、ゴムは周囲に広がり、内側からがっちり固定してくれる。
一応 3Kg の荷重に耐えられるらしいけど、これは「玉虫色の解決」であって、強度保証があるわけではない。
使うなら自己責任で、だろう。
2千円ほどと結構高いのだけど、買ってみたら調子がいい。しっかりしていて外れそうにない。
外そうとするときには、ちょっと緩めればすぐとれる。
…しかし、3日ほどたってから外そうと思ったら、なんかうまく取れない。
緩む方にねじを回していたら、頭が取れてしまい、中のねじを引っ張り出すのに難儀した。
(最終的には取れたけど)
これはどうも、イヤホンプラグを使うのは諦めたほうがよさそうだ。
いままで、イヤホンプラグを使うのは、車内だけだった。
スマホをカーナビ+音楽プレイヤーにして、イヤホンジャックからカーステレオにつなぎ、シガレットプラグから充電しながら使っていた。
うーん、じゃぁ、Bluetooth でカーステレオに繋げるようにするか。
Bluetooth レシーバーで、イヤホンジャック出力でステレオに接続できるもので、シガレットプラグ、もしくは USB 充電で使えるもの…と検索してみる。
そしたら、もっといいものがあった。
Bluetooth レシーバーで受け取った音声を、FM 波に変換してカーステレオに送る、というカテゴリの製品が結構あったのだ。
大抵は、それ自体がシガレットプラグの形状をしている。
あ、でも、そうしたらシガレットプラグが使えなくなる。
USB 充電もしたいから、シガレットプラグを奪われるのは困る。
いや、ちゃんとそこまで考慮した製品があった。
Bluetooth レシーバーで受け取った音声を、FM 波に変換してカーステレオに送る。
それ自体がシガレットプラグ形状だけど、USB 電源出力もある。
ついでに、電話がかかってきたときはその製品についている「受話ボタン」を押すことで、受け取れる。
相手の音声は FM波でカーステレオから聞こえ、こちらの音声はその製品のマイクで拾われて相手に送られる。
ボタンは受話ボタン以外に、終話ボタンと + - の合計4つついている。
これで、音量調整もできるし、聞いている曲の次選曲、前選曲、一時停止、再生開始、などもできる。
スゴイ高機能なのに、購入時の価格で 1200円ほどだった。
#中国から発送なら、800円程度から買える。
ただし、Amazon の商品評価コメントには「到着が遅い」と怒りのコメントが多数並んでいる。
税関通したら遅くなるのは当然で、それは商品の評価に書くことではないと思う。
僕は急ぎで欲しかったのであえて高いものを選んだ。
安い理由は、新製品が出たからのようだ。
新製品では、USB 部分に USB メモリを差し込むことで、USB 内の MP3 を再生できる。
単体で音楽プレイヤーとなる機能が付いたのだ。
でも、僕はスマホを接続したいから買うので、この機能はいらない。
買ってから説明書を読んだら、USB に入れた音楽ファイルを再生できる…というようなことが書いてあった。
もしかしたら少し高かったのは、実は後継機種を買っていたのかもしれない。
使い勝手だけど、Amazon のコメントには「ノイズが乗る」と言っている人と「ノイズは全然乗らない。良好」と言っている人がいた。
また「音が小さすぎる」と言っている人もいた。
買ってみてわかったのだけど、スマホ側の Bluetooth 送信音量を最大にすると、ノイズが乗る。
しかし、スマホ側で音を小さくすればノイズは消える。
一方で、レシーバー側の音量を変化させてもノイズに影響はなかった。
つまり、これはノイズではなく、音量が大きすぎることによる「音割れ」だろう。
さらに言えば、製品に原因があるのではなく、スマホ側に問題がある。
…そのつもりで調べてみたら、Bluetooth の音量がおかしい、というのは、Android には良くある問題のようだ。
Android はハードウェアごとに少しづつカスタマイズが必要なので、Bluetooth などの微妙な部分が完全調整されないまま世に出やすいのかもしれない。
音割れは、Bluetooth に渡す音が大きすぎるということだし、「音が小さすぎる」はその裏返しの可能性がある。
現在のところ、僕は Llama を使って「音楽アプリを起動したら音量最大」にしてしまっている。
これをちょっと改めて、Blutooth 接続しているときは8割程度の音量になるようにすればいいだろう。
そして、音が多少小さいのは、カーステレオの音量を上げて対処することにする。
普段 Bluetooth は使っていなかったので、何らかの問題で接続が切れたときにどうすればよいか、も最初はわからなかった。
単に、レシーバーの電源スイッチを OFF にして、ちょっと置いてから ON にすればいい。
これだけで再接続される。
スマホを(これ以上)落としにくくなって、カーステレオでも接続していた線が一本減って扱いやすくなった。
特にBluetooth レシーバーは、安いのでお勧め。
Plugy Lock は…どうせイヤホンジャックを使わなくするつもりなら、もっと安い方法でもいいかもしれない。
2016.7.24追記
2点、という記事なのに追加でもう1点。
スマホを固定するのに、今まで吸盤から関節付きの腕があって、ワニ口でつかむやつを使っていた。
800円くらいで買って2年ほど使っているのだけど、非常にいい製品だ。満足していた。
ところが、スマホを買い換えると、スマホの重みで吸盤が外れることが増えた。
#ちなみに、吸盤は粘着素材なのでどこでも貼り付けられ、剥がれても洗えば再度張り付けられる。
カーナビに使っていて運転中に落ちると非常に困る。
そこで、「落ちないスマホスタンド」を探した結果これに落ち着いた。送料・税込みで ¥96。
販売会社・メーカーは儲け出てるのか? 大丈夫?
すごく使う人を選ぶようで、別のリンクで売っている(値段も高い)同商品のレビューだと非難も多い。
横置きにしかできないし、タブレットみたいに大きなものは支えられない。
水平に近い場所がないと使い物にならない。それなりに広い面積がないと固定できない。
溝に挟む形なので、スマホ画面下部は見づらくなる。
でも、「摩擦が強くて滑らなくなるので、置くだけでいい」という原始的な方法は、何よりも信頼性が高い。
しばらく使ったけど、コストパフォーマンスが非常に良い商品でした。
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
今日はカシオミニが発売された日(1972)。
名前は有名ですが、もちろん僕は実機を使ったことも、CMをリアルタイムに見たこともありません。
年がばれるけど、この世にはいたけど物心ついてない頃。
カシオミニは、ポケットに入るサイズの電卓です。
電卓というのは、「電子卓上計算機」の略です。卓上、つまりはデスクトップです。
その卓上計算機が、ポケットに入るサイズになるまでには激しい競争がありました。
「卓上」計算機になる前の話から始めましょう。
1950 年代、計算機と言えばタイガー計算機でした。
桁ごとにレバーが付いていて、その位置で 0~9 の数字を表します。
そして、クランクを回して歯車を動かすことで計算を行います。
足し算引き算はクランクを1回まわすだけ。
掛け算の場合、クランクを「かけたい数」だけ回します。
つまり、足し算を繰り返せば掛け算になる、という原理です。
ただ、大きな数をかけたいときにはこのままでは大変ですから、桁をずらすことで「筆算」と同じ原理で高速に計算できました。
割り算はもう少し複雑になりますが、おおむね掛け算の逆の考え方です。
1937年には、電動式のタイガー計算機も開発されていますが、高価で普及はもう少し後です。
電動式では、桁をずらす部分まで含め、自動的に掛け算・割り算を行ってくれました。
1950年代になると電動式も普及し始めますが、手動式でも高価なものだったので、一般的だったわけではありません。
コンピューターは「計算機」に自動制御機能を追加したものですから、電気式計算機もコンピューター以前からありました。
初期のものはリレー回路を使用していて、非常に巨大で、遅いものです。
それでも歯車式よりも高速で動作したため、特に膨大な計算が必要な組織で使用されていました。
この頃の計算機は、数値の入力も歯車式の計算機を模していました。
桁ごとに 0~9の数値を選ぶ、という方式です。10桁の入力がができるなら、10桁それぞれに 0~9 の数字が必要で、数字だけで 100個のキーが必要でした。
これを「フルキー方式」と呼びます。
カシオ計算機は、もともとはこの「リレー式計算機」を作成する企業でした。
まだ計算機と言えばタイガー計算機のような歯車式が中心で、リレー式計算機なんて作られていない頃のこと。
樫尾4兄弟の次男の発案で、リレー式の計算機を作り始め、1957年に「14-A」計算機が完成します。
カシオ計算機は、この機械の利益で作られた会社です。
使いやすさを考慮し、フルキー式ではなく、世界初の「テンキー式」を採用した計算機でした。
テンキー式とは…いうまでもなく、今の我々が知っている「計算機」の入力方法です。
10個のキーで 0~9 の数値を入力し、キーを押すごとに以前に入力した桁が上の桁に送られていきます。
表示に関しては、各桁ごとに 0~9 を示すランプがついていました。
まだ現在のような7セグ表示(いわゆるデジタル数字表示)はありませんし、それ以前につかわれた、数字の形の電極が重なるように入れてある「ニキシー管」も普及前です。
14-A は歯車などの機械部分を持たない「純電気式計算機」であり卓上計算機ではありません。
一見、机の上に置かれているように見えるのですが、その机こそが本体。上に載っているように見えるのは、入出力を行う操作盤です。
価格は 48万 5千円でした。
大学卒の初任給が1万円未満、あんぱん1個が12円の時代です。
#当時の「大学卒」は、非常に限られたエリートだったことに留意。今の大卒と違って高給取り。
今の感覚でいえば、1000万円近い機械でしょうか。
1964年 7月、シャープが「電子卓上計算機」コンペット CS-10A を発売します。53万 5千円。
フルキー方式でしたが、カシオのものよりもずっと小さく、机の上に乗せることができました。
なによりも、リレーと違いトランジスタを使用していたため、高速でした。
カシオはまだリレー式を作っていたのですが、トランジスタ式の研究も開始し、いや応なく切り替えていく形になります。
ここにきて、電卓市場に乗り出してくる会社が相次ぎ、後に「電卓競争」と呼ばれる状態に突入します。
各社機能と安さを競うようになり、どんどんコストパフォーマンスが上がっていきました。
1966年 7月に、日本計算器販売の発売した Busicom 161 が、競争の中で一歩抜き出ます。
数値の記憶部分に高価なトランジスタを使うのではなく、安価なコアメモリを使うようにした製品でした。
値段は 29万 8千円。たった2年で、電卓の値段は半額近くまで下がったことになります。
同社は、製品名のほうが有名になったために、後に「ビジコン」と社名変更します。
この頃、電卓の機能競争は、購入する各社ごとに必要な計算を行いやすくする「アプリケーション」の競争に入っていきます。
銀行に納入するなら複利計算などがすぐできるように。設計事務所に納入するなら構造計算がすぐできるように。
レンズメーカーに納入するなら、光の屈折計算がすぐできるように…
これらをすべて、トランジスタの論理回路で実現していくのです。
値段は下げなくてはならない一方、このカスタマイズ作業が非常に大変で、電卓メーカーの収益を圧迫し始めていました。
また、トランジスタを使った回路ははんだ付け個所も非常におおく、工場での組み立てコストも悩みの種でした。
1969年、シャープが QT-8D を発売します。
世界初の、LSI によって論理回路を実現した電卓でした。
基本演算部分を集積回路にし、アプリケーション部分は別に作り込めるようにすることで、はんだ付けのコストを大幅に減らしています。
値段は 99,800円と、10万円以下を実現しました。
ビジコンも追随し、LSI を1つだけの「ワンチップ化」に成功。BUSICOM LE-120A。
これにより、電池駆動でポケットに入るサイズを実現します。89,800円。
とはいえ、これは小さすぎるため、アプリケーションの作り込みなどはできないものでした。
ビジコンの次の一手が、「アプリケーションを回路の組み合わせではなく、ソフトで実現する」という 141-PF でした。
値段は 159,800円と少し高めですが、計算結果をプリントアウトできる高級機種でした。
この 141-PF を作成する過程で、世界初の「1chip CPU」である i4004 が作られています。
こちらは過去に 4004の発売日 で書いているので、興味のある方はお読みください。
ところで、1960年代は「所得倍増計画」が実行された年代でもあります。
池田勇人内閣総理大臣の打ち出した政策で、10年間で国民の所得を倍増させる、という計画。
実際は所得は4倍に増えています。好景気の時代でした。
先に、1957年ごろの大学卒初任給が1万円未満、と書きましたが、1970年代頭には 4万 6千円ほどになっています。
ちなみに、あんぱんの値段も 12円から 40円に値上がりしています。
生活に余裕ができ、レジャーブームが起こったころでもあります。
特に、ボーリングは簡単な運動で誰でもでき、屋内なので天候にも左右されないなど、いいことづくめで大ブームを起こします。
カシオ計算機の中でもボーリングはブームでしたが、当時のボーリングはすべての計算を手で行います。
(今みたいな、自動計算はない時代ですから)
ボーリングの計算は結構複雑です。
ストライク(1回の投球で的をすべて倒す)、スペア(2回の投球で的をすべて倒す)を出すと、その後の2回、1回の投球の点数がボーナスとして加算されます。
さらに、この頃はブームですから上手な人もいて、ハンデなども考慮した計算が必要です。
ここで、カシオ4兄弟の四男が、「ボーリング用の電卓があれば売れるのではないか」と発案します。
ボーリングの点数は最大で300点なので、数ゲームやって集計しても4桁あれば十分。
その分値段を下げ、ポケットに入るサイズにして…
早速技術者が仮計算してみると、1万円を切る販売価格で作れそうです。
四男とその技術者の二人だけで、他の人には一切内緒で完成させてしまいました。
作成の過程で、8桁になると製造コストが上がるが、4桁と6桁では大して変わらないことが判明。
表示は6桁になります。
従来、1桁ごとに1つの蛍光表示管(広義の真空管の一種)を使っていたのを、6桁を封入した大きな蛍光表示管にすることでコストを下げます。
#ただし、当初からそのように設計したというだけで、初期型には1桁ごとの普通のものが使われた。
6桁封入した管を特注すると、計画が他社にばれてしまう恐れがあったため。
表示は6桁ですが、6桁×6桁=12桁の掛け算性能を持ちます。
この際、上位6桁だけが表示され、下位6桁はボタンによる表示切替で見ることができました。
ボタンにはそれまで使われていたスイッチ(リードスイッチ)と違い、パネルスイッチを採用します。
パネルスイッチとは、基板に「途中が途切れた線」が作り込まれていて、スイッチ側の導電体を押し当てることで電気を流す仕組み。
今では当たり前に使われていますが、当時としては新しいコストダウン技術でした。
完成した電卓を重役会議で披露すると、兄弟の中での反応は上々。
しかし、部長クラスの重役になると「こんなおもちゃみたいなもの、売れるわけがない」という反応もあり、意見は分かれます。
当時の電卓は事務用品ですから、事務用品店の経路で販売されていました。
しかし、カシオミニは個人消費を狙った低価格商品です。
全く新しい流通網として、文房具屋に卸すネットワークを構築します。
そして、個人向けにテレビCMが作られます。
「答え1発! カシオミニ!」
当初の予定を超え、12,800円になってしまったのですが、それでも当時は驚くほどの低価格。
カシオミニは大ヒットします。
生産が間に合わず、営業の仕事は客に謝ってまわること、と言われたほどでした。
月産10万台で、10か月後には100万台。
1年近くたっても生産量が下がらず売れ続けていたのですから、本当の大ヒット商品です。
海外にも多く輸出されていました。100万台のうち 20万台は海外輸出だったそうです。
当時の電卓は、高い計算力を持つ「兵器」の一種だという考え方で、業界では海外への輸出の自主規制が行われていました。
ただし、ここで定義される「電卓」とは、8桁以上の計算能力を持つもの。
カシオミニは、6桁しかないためこの規制も潜り抜け、自由に輸出できたのだそうです。
ここに「電卓戦争」の時代は終結します。
カシオミニはその後も改良が続けられ、まずは定価は据え置きで製造コストの削減・使い勝手の向上を、ついで値下げを行っていきます。
3年後には、4800円と5千円を切りました。
シリーズ累計では1000万台を超える売り上げ台数となったそうです。
同じテーマの日記(最近の一覧)
関連ページ
COMPET CS-10A 発表日(1964)【日記 19/03/18】
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
家族旅行としては話の途中なのだけど、プレジャーフォレストにできたばかりの新アトラクション、「極楽パイロット」に乗ってきたので、ちょっと説明。
まったく前知識のないところから、まず、遊んでいる人を見た。
デフォルメされた飛行機のようなものの、コックピット部分に乗る。
足はぶらんぶらんしている状態。
大きなアームに振り回され、飛行機がぶんぶん飛ぶ。
各機の動きはまちまちで、ゆらゆら揺れているのやら、キリモミ飛行しているのやらいる。
どうやら、左右の翼の角度を変えることができて、上手くやるとキリモミ状態になる模様。
この時点で、「あぁ、手の動きを感知して、モーター動かしてんだな」と思った。
ただ、絶叫マシンっぽい見た目なのに、あまりキャーキャー言う人はいないんだよね。
ちょっと不思議に思った。
次、乗るところで説明ビデオが流されている。
YouTube に同じビデオがあるのを見つけたのでリンクしておこう。
あっ… これ、極楽パイロットじゃない。
色が違うからプロトタイプ時点での映像なのかと思っていたけど、同じグループ遊園地の「富士急ハイランド」で、極楽パイロットと同日にオープンした新アトラクション、「テンテコマイ」のビデオだ。
しかし、そんなことは見たときには気づかなかったので、気づかないふりをして話を進めよう。
このビデオでの説明は、実際の上手な人の操作を見ながら、「左右の翼を、タイミングよく反転させる」ということの説明のみ。
なるほど、これだけの説明で十分。
モーターなんて入ってなかった。翼に風をうけて、その力で機体を回すという、純粋に物理的な動作。
風車の羽が、中心点を挟んで逆の角度になっているように、翼を左右逆にしていれば、風車のように回転する。
もっとも、人間の体重を回そうというのだから、風車のように簡単には回らない。
ブランコをこぐように、小さな揺れから共振を起こし、だんだんと大きな揺れにしなくてはならない。
デフォルメされた飛行機の「翼」は、実際の飛行機でいう「エレベーター」(翼の後ろの可動部分)にあたる。
そう考えると、これはただの乗り物ではなく、流体力学を応用した物理実験機だ。
キリモミ飛行は、この動作を完全に把握した人だけが到達できる。
時間は限られているので、その時間内にキリモミを発生させられるかどうかが、この遊具の楽しみのポイントとなる。
ここまで、頭では理解できた。
#周囲の待っている人の会話を聞いていると、ここまでの理解に及ばない人が多数。
なんか、うまく翼を動かせばキリモミするらしい、程度の認識なのだけど、それではキリモミに入れない。
乗り込んで、シートベルトを締め、肩を抑えるように上からハーネスを締め、さらにハーネスが緩まないようにベルトを締める。
すごく厳重に「落ちないように」安全策を取ったうえで、いよいよ「離陸」。
垂直離着陸機のイメージなのか、ゆっくりと上に持ち上げられる。
ただし、アームがある都合上、全員「斜めに」なる。
そして、各機体を固定しているブレーキ(?)が外される。
斜めの状態から急にフリーになるので、左右に揺らされる。
ここ、事前説明になかったので油断していた。
この「揺れ」を最初の種として共振を起こしていけば、最短時間でキリモミに入れるのだろう。
最初は、振り回される感覚にも慣れていないので、自分の「揺れ」が認識できない。
それが認識できないと、ブランコをこぐように大きくすることができない。
でも、じきに慣れて、共振させながら揺れを大きくしていく。
ある程度揺れが大きくなると、一番揺れたところで「そのまま回転するのではないか」と期待して、翼の角度を切り替えられなくなる。
この「最後のひと押し」ができないのが悔しい。でも、悔しいということは良いゲームだということだ。
そして、コツがわかった。
アームによる「振り回し」は、斜めの軌道になっている。つまり、「落下」する瞬間があるのだけど、ここが一番風圧が強い。
だから、このタイミングでキリモミに入るのが一番入りやすい。
キリモミに入ったら、翼を動かしてはならない。そのままの角度を維持すれば回り続ける。
しかし、徐々に回転が加速していく。目が回り、気持ち悪くなるので「一度止めよう」と思って止めてしまった。
#理解して回転に入れたのであれば、止めることも難しくない。
さて、再チャレンジ。これがまた、すぐには回らない。
もう一度回せて、今度はそのまま維持、と思ったところで終了時間になって終わってしまった。
姿勢としては「頭を後ろにつけるように」と事前説明があった。
でも、落下する瞬間とか、ハーネスに体重を預けることになる。
回転にうまく入れずに「逆立ち」した状態で止まると、肩で支えることになる。
大丈夫だと思うのだけど、結構怖い。
ただ、ものすごく怖いのかと言うと、冷静にならないと姿勢制御できないので、叫ぶような怖さはない。
状態を冷静に把握できている時って、怖さを感じないものだ。
ちなみに、自分で機体を揺らさなければ、ただぶんぶん振り回されるだけで、回転木馬とそれほど変わらない。
(いや、回転木馬と違い、落ちる部分があるからちょっとは怖いか)
怖い状態にできる人は怖いとは感じず、怖い状態にできない人は当然怖くない、という不思議な乗り物。
絶叫マシンのはずなのに、あまり叫び声が聞こえないのはこれが理由だったようだ。
「回せるかどうか」に挑むゲームとしては、かなり面白いと思った。
絶叫マシンじゃなくて、体感ゲームマシンだ。
WingWar を R-360 でプレイしている感覚に近いと思った。
いや、R-360ではそのゲーム以外プレイしたことないからだけど。
#WingWar は飛行機のゲームで、宙返りやキリモミ飛行も可能なのだけど、そのようにする操作は結構難しい。
そして、R-360 は特殊な筐体で、対応ゲームを遊ぶとコックピットが自由に回転する。
ところで、後で知ったのだけど、回転数カウントされているそうだ。
大記録が出るとアナウンスしてくれるらしいので、本当に「ゲーム」として楽しむリピーターもいるらしい。
回り始めたら後は「翼の角度を維持する」以外にやることはないので、いかに早くキリモミに入るか、だけが勝負だろう。
あと、回転してると、怖いというより、気持ち悪くなる。
それに耐えられるかどうか、という勝負で、記録を出したとしてもあまり楽しい体験にはならない気がする。
同じテーマの日記(最近の一覧)
関連ページ
プレジャーフォレスト・キャンプエリア【日記 16/08/12】
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
今日はラルフ・ベアの誕生日(1922)
世界最初のテレビゲーム機を作った人です。
もっとも、テレビゲームはそれ以前からありました。
当時は非常に高価だったコンピューターで、一部の大学生とか技術者が遊んでいた。
でも、ラルフはそういう立場にはいませんでした。
全く独自に、「テレビの使い道は、テレビ番組を見るだけではないのではないか」と思いついただけ。
だから、彼のアイディア自体は物真似ではありません。
試作品である BROWN BOX を作ったのは 1968年。
ゲーム専用に特化された機械で、「世界初のテレビゲーム機」です。
「テレビゲーム」という言葉自体、BROWN BOX の特許を取る際に作られた言葉なのだから。
この後、コンピューター上のテレビゲーム「SPACE WAR!」を見たことのあるノーラン・ブッシュネルが、安価な専用回路を組んで「COMPUTER SPACE」を発表します(1971)。
これが、発売されたものとして、また、業務用として初のテレビゲーム機。
でも、ちっとも売れませんでした。
ラルフは、BROWN BOX を改良・量産し、ODDYSSEY として発売します(1972)。
家庭用として発売された、初のテレビゲーム機。
しかし、新しいものというのは理解されるのに時間がかかります。
発売時にはあまり売れなかったようです。
とはいえ、最終的には 35万台を売る大ヒット。
ノーラン・ブッシュネルは、この ODDYSSEY の中の1ゲームをみて、業務用に改良し、PONG として発売します(1972/11/29)。
これが空前絶後の大ヒット。
ブッシュネル自身の作った ATARI 社で売ったものだけで1万台。
違法コピー基盤も含めれば、10万台を超えると言います。
…家庭用の 35万台と比較してはいけないよ。業務用は、1台のゲーム機で数百人から数千人が遊ぶのだから。
遊んだ人の数でいえば、ODDYSSEY の比じゃない、ということ。
実のところ、先に書いたように ODDYSSEY は最初から売れていたわけではありません。
PONG を遊んだ人が「家庭でも似たゲームが遊べるから」という理由で ODDYSSEY を買い始め、結果としてヒットになったのです。
世界的には「テレビゲーム」ではなく、「ビデオゲーム」と呼ばれることも多いです。
ビデオゲームという言葉は、PONG の宣伝文句として考え出されたものです。
以上の話は、以前に書いた世界初のテレビゲームとPONG発売日を再度まとめたもの。
ラルフは、テレビゲームを見たこともないのに全く独自に面白いものを作り出した…
というわけではなく、彼はゲームを見たことがないが、彼の下で働いた技術者がゲームを知っていたようです。
この話は、ラルフ氏の亡くなられた際に書いた追悼文に書きました。
今回は、ODDYSSEY 以降の彼の最大のヒット作、サイモン(1978)について書きましょう。
ラルフ氏は ODDYSSEY の発明以降、「発明家」として転身しましたが、テレビゲームよりも、むしろ手に取って遊べる「おもちゃ」を作るのが好きだったようです。
サイモンは、単純明快で面白いので、当時大ヒットしましたし、その後もシリーズ作が続きます。
上の動画が、オリジナルの機械。
これに似た機械を見たことがあるとか、機械は知らないけど同じようなゲームを知っているとか、みんな何かしら覚えがあるはず。
動画を見てもらえば遊び方は一目瞭然ですが、記憶ゲームです。
機械が指示したとおりにボタンを押す。ただそれだけ。
最初は指示は短いのですが、成功すれば「前の指示に追加」される形で長くなっていきます。
だから、一度は覚えて成功したはずのものを、何度も繰り返し入れないといけない。
何度も入れてわかっていたはずの場所で間違えると、妙な悔しさがあります。
つい「もう一回」となってしまう中毒ゲーム。
このゲーム、優れているのは、攻略法がいくつもあることです。
指示は「押すボタン」のランプを連続して点灯することで行われます。
しかし、ボタンには色がついていて、光ると同時に固有の音階が出ます。
このため、「位置」「色」「音」の3つが、同じ指示を出していることになるのです。
最初は一生懸命ボタンそのもの(つまりは位置)を覚えようとするのだけど、慣れてくると色の連続として覚えたり、目をつむって音に集中したりもする。
不要な情報を遮断して集中することで、むしろ記憶しやすくなるのです。
そして、どの情報が不要になるかが、人によって異なります。
ボタンが4つしかないのもいい。
単純だからこそ覚えやすいですし、失敗した時の悔しさに繋がります。
ところで、1970年代末期に「サイモン」といえば、まだ外国人の名前に慣れていない日本人にとっては、サイモン&ガーファンクルでした。
(サイモン&ガーファンクルは 1960年代に世界的に大ヒットした音楽ユニット)
で、昔 X68000 用に、「ガーファンクル」ってゲームがあった。
まるっきりサイモンなんだけど。電脳倶楽部の創刊号に入ってました。
X68000 では、キーボードの7つのキーに、LED が埋め込まれていたのね。
それなりのプログラムを組めば、当たり前だけど点灯を制御できた。
この LED キーを使って「サイモン」を遊ぶ、というアイディアでした。
だから、PC ゲームなのに画面を使わない。キーボードだけで完結している。
単純なのだけど、ゲームなのに画面を使わない、というアイディアに驚いた覚えがあります。
「サイモン」という名前は、欧米の子供の遊び「Simon says」から来ているそうです。
Simon は、13世紀のイギリスの英雄、Simon de Montfort のこと。
日本で言うと「赤白旗揚げゲーム」が近いかな。
Simon says ~ と言われたら、これは英雄の命令ですから、従わなくてはなりません。
でも、命令の前に Simon says がついていない場合は、偽の命令なので従ってはならない。
サイモンは言う、回れ右! サイモンは言う、腕を上げよ しゃがめ!
この例では、最後の「しゃがめ」は偽命令なので、従ってはなりません。
みんなでこの遊びをやって、正しい動作ができてない人は脱落、最後まで残った人が勝ち、という遊び。
単純な遊びなので亜流もいっぱいあって、「やれ!」と言われるまで、命令を覚えるだけで動いてはいけない、というのもあったみたい。
だから、命令の真偽を判別する上に、覚えておかなくてはならない。
ここら辺が、記憶ゲームを「サイモン」と命名した由来なのかな、と思います。
今でもサイモンは人気があって、時々シリーズの新作が発売されます。
先日、お店に置いてあった「サイモンエア」を遊びました。
子供が興味を持ったのだけど遊び方がわからなくて、僕が説明しながらプレイして見せたのね。
基本的にサイモンですが、ボタンが無くて空中に手をかざすだけでいい、という不思議感覚おもちゃ。
内容はやっぱりサイモンでした。単純明快な良さがある。
遊ぶ前は「古いゲーム」と思ってたのですが、今遊んでも十分面白いです。
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
今日は QV-10 の発売日(1995)
大ヒットし、「デジタルカメラ」を普及させた機械です。
写真は、QV-10 のマイナーバージョンアップ、QV-10A ね。
小さな改良があるのと、本体色が違います。
後で書くけど、初代も持っていたのだけど、壊れて今は 10A しか残ってない。
僕はいつも古いコンピューターの話ばかり書いているけど、今日は比較的新しい。
といっても 22年前の話だけど。(普段は 60年前とか…僕が生まれる前の話書いてるからね)
実のところ、QV-10 以前にも「電子カメラ」は存在しています。
ソニーのマビカが有名ですね。
これが市販された最初、ではないのですが、研究開発としてはソニーが最初(1981~)なので、製品としては人気が出ました。
マビカが発売された当時、僕は大学生で、 Oh!X という雑誌が愛読書でした。
ライターの一人(荻窪圭だったはず)がマビカを購入して、これがいかにパソコンと相性の良い、遊べる機械であるかを、楽しそうに書いてました。
マビカは電子カメラだけど、アナログ記録でした。
2inch フロッピーディスクにアナログで記録して、見るときにはオプションのアダプター経由でテレビに接続して見るのね。
X68000 はテレビと組み合わせて使うことを前提に設計されたパソコンで、オプションで「カラーイメージユニット」がありました。
テレビ画面をパソコンに取り込むための周辺機器。
だから、マビカとイメージユニットを組み合わせることで、撮影したものをそのまま X68000 で扱えます。
これが、パソコンと相性が良い、という理由でした。
…でも、イメージユニットは高価だったし(¥69,800)、マビカも本体だけでは使えず、テレビ信号を作り出すプレイバックアダプターなどを買うと10万円を超えます。
当時はまだ大学生だったので、楽しそうだと思う反面、とても手が出ませんでした。
1994 年には「世界初のデジカメ」である、Apple Quicktake 100 が発売されています。
…へー、そうだったんだ、ってくらいの話。
Mac の周辺機器として設定されていたので、Mac ユーザー以外には話題にならなかったみたい。
「11万8,000円」という情報が得られたので、国内でも販売されたのでしょう。
640x480 ピクセルなら 8枚、320x240 ピクセルなら 32枚撮影できます。
ズームもない、フォーカスも固定、写真を見るにはパソコンが必要、という純粋な「画像を取り込むための周辺機器」でした。
…なぜか一時期持っていたのだよね。
たしか、ヤフオクで Mac の周辺機器探していたら、Quicktake 100 も付属したセットで出品されていたのではなかったかな。
そのころはすでにデジカメの普及機で、こんな低性能な機械に興味はなかったので、即刻売り払ったと思います。
そして QV-10 の発売。
¥65,000 だったようです。
320x240 の画像が、96枚撮影できます。
液晶ディスプレイがついていて、撮影したその場で写真を見ることもできたし、パソコン側から画像を送り込んで、ビューワーとしても使えました。
発売前から情報を知り、先に書いたマビカの話などもあって、「ぜひ欲しい」と思ってました。
この頃はスキャナも欲しかったのだけど、とにかく画像が取り込めるのだから、本の挿絵とか取り込みたいなら接写すれば何とかなるだろう、とも期待を込めて。
でも、正直なところ、値段も結構高いし、画質も悪い。
こんな変なものを買う人は少ないだろう…と、発売日に量販店に行くと「大人気であっという間に売り切れました」と店員さんに言われます。
驚きました。こんな変なものを欲しがる人が、僕以外にもたくさんいるんだ、って。
次の入荷はいつになるかわかりません、多分1か月くらい後です、と言われましたが、その場で予約して帰ります。
…2日後に、「入荷しました」という連絡が来ました。
ずいぶんと速いな。
#当然ですが、スキャナ代わりにはなりませんでした。
スキャナは後で買った。
高校時代は写真部に在籍していました。かけもちの幽霊部員ですが。
一応文化祭の時には写真を出展していたし、暗室作業も一通りはやりました。
でも、写真ってたくさん撮らないとダメね。
上手な人は、躊躇せずにシャッターを押す。大量にとった中から厳選して、本当にいい写真を公開する。
もちろん、最初から構図を決める能力も必要ですよ。
どの写真も上手に取れていて、その中から厳選するのだから、人を感動させられるレベルの写真が生まれる。
でも、僕にはどちらもなかった。
構図を決める能力も、フィルムを湯水のように使う財力も。
#財力は、パソコンにつぎ込んでいたからだとも言えます。
写真やる人が金持ちなわけではなく、配分の問題。
そんなわけで、「フィルムを使わないから気軽に録れる」「96枚も録れる」というのは、なかなか快適でした。
普段から QV-10 を持ち歩き、何か面白いものがあれば気軽に撮影します。
バスの時刻表とか、メモしたいものを気軽にパシャリ。
今では当たり前ですが、フィルムカメラの頃には考えられない使い方でした。
QV-10 はフラッシュなんかついていませんでしたが、暗がりに強く、夜の街灯の下でも撮影できました。
電池食いではありましたね。
その上、電圧が足りないから充電池は使えない。
液晶の付いた本体部分とカメラ部分の角度が変えられる…カメラ部分が「回る」ことに関しては、今だと「独創的だった」とする解説が多いのですが、「液晶ビューカムの真似」というのが当時の率直な感想。
デジタルカメラに液晶を付けたのは世界初だったし、それによって気軽さが強調され、大ヒットしたのは事実です。
今のデジカメの方向性を示したのは、Apple Quicktake100 ではなく、QV-10 とされるのもそのため。
だけど、ビデオカメラで「液晶ビューカム」という機種をシャープが 1992年に発売していて、QV-10 と形がそっくりです。
QV-10 は安くするために、普及していたビデオカメラ用 CCD を使用した、というのも相まって「動画の撮れない、小さな液晶ビューカム」だと思っていました。
真似が悪いというのではないよ。
この「カメラ部分に角度がつけられる」というのは非常に便利で、QV-10 の後に続いたデジカメブームでは真似した会社も多かったし、むしろこの機能がついていない、普通のカメラのような形状だと不便だと感じていた。
ところで、ビデオカメラ用 CCD は、NTSC ですからデジタルに換算すると 640x480 程度の画像を撮影できます。
でも、縦方向はインターレース…奇数ラインと偶数ラインを交互に読む仕組みです。
だから、縦 480 で撮影すると、奇数ラインと偶数ラインの間に 1/60秒のずれが生じてします。
「静止画」としては、妙なことになってしまうのです。
これが、QV-10 が 320x240 で撮影する理由。
記憶容量を節約する意味ももちろんあるのだけど、安くするために「仕方ない」理由があるのです。
このWEBサイトは 1996年に作り始めていますが、初期の写真は QV-10 で撮影されています。
当時のインターネットは回線速度も遅く、320x240 でも「大きすぎる」くらいだったので、十分な性能でした。
でも、QV-10 だと料理中の写真撮りにくいのね。
赤外線フィルタが不十分で、熱い部分が「緑色」になってしまうの。
いろいろと欠点もあったけど、欠点を補って余りある楽しさもありました。
QV-10 がヒットすると、カメラ会社からもっと本格的なデジカメが発売され始めました。
デジカメの黎明期ですね。
カメラ会社としては、ちゃんとした「写真」を撮れないといけない。
最低 640x480 以上の画質にしたいのですが、そのためには CCD から専用品を設計しないといけない。
当然高価になります。
高画質にするためには、ピクセル数を増やす必要もありますが、それは「1ピクセルの面積」を減らすことでもあります。
そうすると、暗がりに弱くなる。
フラッシュを搭載しても、気軽な撮影は難しくなります。
何よりも、慌てて QV-10 の後を追ったカメラは、搭載しているソフトウェアがこなれていないものが多く、使いにくい印象でした。
僕も QV-10 のしばらく後に「もっといいカメラを」と思って DC-3 とか買いましたけど、使いにくかった。
暗いと撮れないし、撮影後にすぐ電源を切ると、画像が保存されていないことがある。
(電源はソフトウェア制御しているはずなのに、「データ保存」よりも「電源処理」を優先してしまっている)
そのころ、まだ結婚する前の妻から「デジカメ買いたい」と相談を持ち掛けられ、QV-10 を勧めました。
主な想定用途は WEB サイト作成だったから画質は十分だったし、何よりもそのころには安くなっていたから。
これが、冒頭画像の QV-10A です。
僕の QV-10 は、使い込みすぎて壊れてしまって捨てたのだけど、妻の QV-10A はまだ残っています。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
今日は、世界最初のドメイン名が登録された日(1985)
…と言ってしまって良いものかどうか。
一応、この前から「ドメイン名」は存在していました。
ただ、登録機関が作られ、最初に正規の手続きが取られたのは、 SYMBOLICS.COM で、1985年3月15日に登録されているのです。
インターネットは、初期の頃に IPv4 が完成し、IP アドレスを直接使ってコンピューターを指定していました。
しかし、これは覚えにくく、不便です。
そこで、HOSTS.TXT という仕組みが考えられます。
テキストファイルで、IP アドレスとホスト名(コンピューターの名前)の組を書いただけのファイル。
ホスト名を指定すると、自動的に HOSTS.TXT を調べて IP アドレスにアクセスを行います。
この HOSTS.TXT は、マウスの発明者としても知られるダグラス・エンゲルバートが管理していました。
彼はスタンフォード研究所(Stanford Research Institute)に所属していましたが、自分のマシンで、この HOSTS.TXT を FTP 公開していました。
ですから、時々 FTP で最新の HOSTS.TXT を取り出し、自分のマシンに入れる必要があります。
Stanford Research Institute's Network Information Center
「スタンフォード研究所 ネットワーク情報センター」の頭文字をとって、SRI-NIC と呼ばれます。
しかし、このやり方は、1980年代の初頭にはホスト名が数百件を超え、破綻気味でした。
そこで、ポール・モカペトリスが、ホスト名の分散管理を考案します。
Domain Name System …いわゆるDNSです。
1983年11月に構想の概要が公表されています。(RFC882,883)
1984年10月には、ドメイン名の名付け規則が決められます。(RFC920)
1987年11月には、プロトコルなどの詳細などが決まって実装されます。(RFC1034,1035)
SRI-NIC では、命名規則が決まった後の 1985年にはドメイン名の登録受付を始めています。
そして、現存している「一番最初の登録」が、1985年3月15日登録の、SYMBOLICS.COM なのです。
さて、話としてはこれでおしまい。
でも、折角なので SYMBOLICS.COM について書いておきましょう。
MIT にジョン・マッカーシーという計算機学者がいました。
人工知能の生みの親の一人であり、タイムシェアリングを普及させた人で、Lisp 言語の設計者です。
さて、Lisp という言語、非常にシンプル、かつ強力な処理構造を持ちます。
面白いので紹介したいところなのですが、長くなるのでそれはまたの機会にしましょう。
ここで重要なのは、Lisp は List Processor の略である、ということです。
List 構造は、プログラマーならご存知かもしれません。
1つのデータの塊に、次のデータの塊への「ポインタ」を用意し、次々繋げていくデータ形式です。
データを移動したい際に、実際のメモリ上から動かす必要はなく、ポインタのつなぎ変えだけで済む、という利点があります。
Lisp は List Processor なので、すべて…データだけでなく、プログラムもこの List 構造で作られています。
さらに詳細にいえば、Lisp では、ポインタのつなぎ方がすべて二進木になっています。
ポインタの2つ組みが非常に重要なのです。
さて、Lisp は非常に柔軟なデータ形式を持っているのですが、そのぶん処理は遅いです。
たとえば、Lisp では整数型と浮動小数点型の数値は区別はされていますが、問題なく加算できます。
これ、今の言語では当たり前ですが、当時としては画期的なこと。
代償として、加算の前に「型チェック」や、必要なら「型の変換」が必要になるので、速度が遅いです。
そこで、Lisp 処理に特化したコンピューターが、MIT で開発されました。
後に多くのメーカーがこの市場に参入し、一般に「Lisp マシン」と呼ばれます。
Lisp マシンでは、word を保持するのに必要なメモリよりも若干大きめのビット数を確保してあって、データと型を一緒に保持していたりします。(タグ付きアーキテクチャ)
これにより、ハードウェアが型チェック・変換をサポートし、速度の低下を抑えます。
先に書きましたが、List 処理では「ポインタ」の操作が非常に多いです。
Lisp マシンでは、型の一つとしてポインタを持っていて、データを読んだ時に「次のメモリ」を参照すると、自動的にポインタの示す先に進んだりもします。
アドレスの概念がハードウェア的に隠蔽されているのです。
#Lisp マシンは Lisp を効率よく実行できるようにはなっていますが、他の言語、例えばCだって動かせます。
しかし、アドレスを持たないため、「ポインタ」概念は混乱があります。
やっと今日の話に戻れます。
世界最古のドメイン、SYMBOLICS.COM を取得した Symbolics は、MIT で開発された Lisp マシンを商用で販売する会社です。
実際には MIT の研究所内で活動し、その代償として成果は MIT に無償提供されました。
つまるところ、商用販売するから組織を分けただけで、実体は MIT の人工知能研究所なのですね。
ちなみに、現在はこのドメインは売却され、ドメイン名管理会社が所有しています。
「最古のドメイン」を知らせるページが設置されていますが、その会社の宣伝を兼ねているのでしょうね。
ところで、Symbolics のキーボードは…なんというか、とても個性的です。
画像は、Retro Computing Societyから引用させてもらっています。
クリックすると別ウィンドウで同じ画像を開くので、細部まで拡大してご覧ください。
このキーボード、「Space Cadet Keyboard」と呼ばれます。
Cadet というのは「士官候補生」の意味。
このキーボードを使う君は、将来宇宙で活躍するヒーローの候補だ! ってことですかね。
SF映画に出てくる、すごい装置っぽさはあるよね。
キーボードには謎の記号がいっぱいついています。
∞⊂∀∂みたいな数学記号はまだいいとして、👍👎👈👉とかありますからね。
Shift や Ctrl に当たるような修飾キーにも、「SUPER」「HYPER」「GREEK」とか、いっぱいある。
注目すべきは「META」かな。これ、Emacs ユーザーなら知っている「METAキー」の本物です。
今のキーボードでは ESC で代用するのが普通だけど。
このキーボード、{ } …いわゆる「弓括弧」もある。
以前、弓括弧が使えた最初のマシンはどれか、という調査をやったのだけど、その時にこのキーボードを発見して「すごい!」って思いました。
リンク先に書いてあるけど、MIT の Lincoln Keybord も数学記号とか { } とか入れてあるんだよね。
Symbolics も、先に書いたように実態は MIT の人工知能研究室です。同じような記号が使えるのは、多分関係あるんじゃないかな。
ドメイン名を登録開始した 1985年中には、5つのドメインしか登録されていません。
2番目は bbn.com。これも MIT と関係の深い、初期のインターネットを形作った企業です。
続いて、think.com mcc.com dec.com …やっぱり、全部 MIT と関連のある企業。
5番目の northrop.com が、やっと関連のない企業(航空機製造業)です。
でも、空軍がらみの企業だよね。MIT って、空軍や航空業界ともつながりがあるので、やっぱその関係かも。
ドメイン登録は SRI の仕事でしたが、SRI 自体は 1986年になってから、7番目に登録しています。
6番目は Xerox 、8番目は Hewlett-Packard。1986年は、シリコンバレー企業が続々登録しています。
同じテーマの日記(最近の一覧)
関連ページ
タネンバウム教授(1944) ストールマン(1953) 誕生日【日記 17/03/16】
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
今日は地図の日。
伊能忠敬が測量事業を開始した日、とされています(1800)。
…されています、というのは、本当は旧暦(寛政暦)の4月19日だから。
しかも、この年は閏年で、4月が2回あった。「閏四月十九日」が測量開始の日ですね。
現代で言うと、6月11日。
しかも、この日は「江戸の自宅を出発」した日で、船で蝦夷地まで向かっています。
本当に蝦夷での測量を開始したのは5月29日で、現代で言うと7月20日。
でも、そんな細かいことを言うとややこしいので、とりあえずは4月19日測量開始、で良いかと思います。
以前に書いたのだけど、僕は小学生の時に「尊敬する人物」と聞かれて、伊能忠敬の名を挙げています。
お父さんとか、王貞治選手とか言う子が多かったのだけど、それはなんか違うと思ったから。
家にあった偉人伝(一人2~3ページの漫画で主な業績を紹介してあるだけ)の中から見繕って、この人はすごいと思って書いた程度。
でも、一度「尊敬する」と言ってしまったら、ちゃんと知っておかないといけない気になった。
少しづつ調べて、大学くらいの時にやっと業績を正しく理解できるようになりました。
伊能忠敬は、「結果的に」地図製作者なのですが、彼自身の興味としては「暦」にありました。
カレンダーですね。
江戸時代の暦は、カレンダーとしての実用性だけでなく、それ自体がエンターテインメントでした。
日々の運勢が書かれていたり、寺社での祭りなどのイベントや、月食などの珍しい天文現象まで予測されていました。
江戸時代は天文学が大きく進んだ時期で、暦を作るための「歴法」も何度か改定されています。
中国から「暦」が伝わってから 800年ほどは、そのまま中国の歴法が使われていました。
しかし、800年もの間に実際の天文現象と暦の間にずれが見られるようになります。
そこで、これを改定させたのが渋川春海。江戸初期の話です。
800年も続いたものを改定するのだから一大事業でした。
しかし、これで「正確な暦」の重要性が認識されると、より正確な暦を目指して工夫されるようになります。
結局、江戸時代 200年の間に4回の暦の改定がありました。
忠敬が測量の旅に出発した、という4月19日は、寛政暦によるもの。
一般に「旧暦」と呼ばれるのは天保暦ですが、それほど大きく違うわけではありません。
日本の暦は、月の満ち欠けを元としたものです。
月が出ない、新月の日が朔日(1日)。満月が15日。
暦を持っていなくても、夜の月を見れば日付がわかる。誰にでもわかりやすい方法ですし、だからこそ 30日の単位を「月」と呼びます。
現代のカレンダーは「シンプル」ですが、「月」という語源からはすでに離れています。
十五夜は 15日の夜ではない。
しかし、旧暦は、その定め方は複雑ですが、「1ヵ月」が非常にわかりやすいです。
それでいて、実は現代のグレゴリオ暦よりも、1年の長さが正確です。
(地球の1年は365.24219日。
これに対し、グレゴリオ暦の1年は 365.2425日、天保歴は365.24223日)
旧暦では、1ヵ月は29日か30日です。1年は354日程度。
これでは実際の1年と誤差が大きいですから、4年に一度程度、「閏月」を入れて調整します。
このときは、1年が13月になります。
この、閏月をどのタイミングで入れるかも、誰が計算しても同じ結果になるように計算方法が決められています。
冒頭で書きましたが、伊能忠敬が測量の旅に出たのは、閏四月でした。四月の次に、もう一度四月を繰り返します。
一般に旧暦と新暦は1か月くらい違うとされるのですが、これによって2か月くらい違っている。
四月だから「春に出発」と思いきや、梅雨のさなかです。
実際、蝦夷への船旅は、梅雨頃に特有の気象現象によって長引いています。
#冒頭に書いた新暦と旧暦の対応は、暦の改定も考慮して作られたページを参考にさせてもらいました。
暦を作る上では、天文現象をよく知る必要がありました。
そして、天文現象をよく知るには、一番身近な天体…地球のことをよく知る必要がありました。
遠くにある星は、遠いからこそよくわかりません。
しかし、近くにある地球は、今度は近すぎて全体を観察できません。
実際、地球の正確な大きさもよくわかっていませんでした。
そして、地球の大きさを知ることが、暦法を改良する上で必要とされていたのです。
伊能忠敬の興味は、ここにありました。地球の大きさを知りたい。
でも、江戸時代は何をするにも幕府の許可が必要でした。
地球の大きさを測りたい、なんて常人に理解できないことを言い出したところで、許可はおりません。
そこで一計を案じました。
蝦夷からの外敵に備えるため、蝦夷の地図を作りたい。
幕府に対して、そう申請したのです。
当時、蝦夷はまだよくわかっていなかったので、地図を作るというのは大義名分となります。
そして、地球全体の大きさを推察するためには、大きな場所を測ったほうが良いのです。
地球のサイズを測るのに一番良い方法は、緯度1度の長さを測ることと考えられました。
緯度とは、北極と南極をまっすぐに結ぶ線、「子午線」に対して、地球の中心からの角度のこと。
赤道は0度、北極・南極は90度になります。
北半球では、夜になれば「北極星」を観測できます。
北極星は、ほぼ動きません。
#実際には多少動きますが、この動きも時代とともに変わり、江戸時代は現代よりも動きませんでした。
この北極星がどこに見えるか、正確な角度を出します。
北極の上にあるのですから、北極では天頂、90度の角度に見えるはずです。
逆に、赤道では水平線に重なる、0度になるはずです。
ということは、90度から北極星の角度を引いたものが、観測地点での緯度となります。
これで、地球上の「緯度」はわかります。
あとは、地上の距離を測定すればいいだけ…?
いや、それでは、同じ緯度でも「斜めに」長さを測ってしまうかもしれません。
正確に子午線に沿って図らなくては、距離を誤ります。
実のところ、緯度は比較的簡単に測れますが、経度を測るほうがずっと難しいのです。
経度を測るには、星の位置を使います。
星は、1日の間でもずれていきます。
地球が1日で1回転している(自転)ためで、1周は360度。
現在の時法では、1時間は1日を24等分したものなので、1時間のずれは 360/24 = 15度。
4分で1度ずれることになります。
さらに、毎日同じ時間に星を観測したとしても少しづつ位置がずれていきます。
これは、地球が太陽の周りをまわっているためです。
地球はおよそ 365日で太陽の周りを1周します(公転)が、1周は 360度。
だから、1日のずれはおよそ1度。
同じ個所で数日にわたって観測を行ったら、ここで説明したとおりのずれが起こります。
では、「移動しながら」観測を行ったらどうでしょう?
前日の観測とは、上に書いたものとはまた別の「ずれ」が加わるはずです。
そのずれは、つまり観測地点の経度が変化したことによるずれです。
このずれを正確に測定することにより、2点間の経度の差を求めることができます。
ただ、ここでまた別の問題が生じます。
上に書いた「ずれ」は、地球の動きに起因するものです。
これを正確に測定しようと思えば、地球の動きを正確に知るための道具…
つまりは、正確な時計が必要になるのです。
これは、当時の技術的な限界でした。
伊能忠敬の日本全図は、緯度はかなり正確なのですが、経度に関してはずれがあります。
しかし、星の南中時刻を利用して経度を測定する努力はしています。
ずれがないように複雑な方法で「糸」張り巡らせ、そのうち高さの違う2本が、正確に南北を向くように(子午線に沿うように)します。
この2本が重なるように下から覗くと、星の正確な「南中」位置の目安となります。
蝦夷地の計測は、実際に日本全体の計測を行う前の「試験」と位置付けられました。
試験的なものなので、使用してよい機材も限られ、精度を上げるのに限界がありました。
そして、伊能忠敬が「やりたい」と幕府に願い出て許可を得たもので、幕府は許可とわずかな資金を出しただけです。
忠敬はほぼ私財をなげうって計測を行い、およそ70両、現在の価値にして1200万円ほどを使ったようです。
1800年 10月には計測を終えて帰り、11月は地図製作に取り掛かります。
年内にはすべてをまとめ上げ…子午線1度は「二十七里余」と出ました。
「余」というのがまた微妙ですが、仮に 27.3里 だとしましょう。
1里は約 4km…より正確には、約 3.93km とされます。(もともとそれほど正確な単位ではありません)
1度がこの長さですから、地球1周の長さは 27.3*3.93*360 = 38624km 程度です。
実は、ほぼ同じことを、1年前にフランスが行っています。
ヨーロッパ各国で統一されていなかった「長さの単位」を統一しよう、と呼び掛けて始まったもので、ヨーロッパの国々で計測を行い、赤道から北極までの長さを算出しました。
そして、この 1000万分の1を「メートル」とします。1799年のことでした。
言い換えれば、赤道から北極までが 1000万メートル…1万 km です。
これは地球一周の 1/4 ですから、1周は 40000km になります。
伊能忠敬の計測値は、 4% 程誤差があります。
しかし、この業績が認められ、さらに全国の計測が許可されます。
最終的に忠敬の出した子午線1度の長さは、28.2里。
地球一周の長さは 39897km です。わずか 0.3% の誤差しかありません。
ちなみに、地球は当時考えられていたような「球」ではなく、遠心力のために赤道付近が膨れていますし、大陸と海の重さの違いで、北半球がつぶれています。
フランスの計測した場所と、忠敬の計測した場所では、子午線1度の長さが違う、ということですね。
では、現代日本の測定ではどうなのか?
これは、忠敬の子午線1度は、0.2% 程度の誤差しかないのだそうです。
伊能忠敬が暦に興味を持ち、勉強を始めたのは、老いて隠居してからです。
人生何歳からでも何かを始めるのには遅くない。
成し遂げたことの偉大さもさることながら、この姿勢が素晴らしいと思います。
僕の尊敬する人物の一人です。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |