目次
前のページ
2025-07-02 akamai の CDN
2025-08-04 昔のプログラマ
2025-09-19 続・プログラム中級者からの質問
2026-03-23 Oh!X 令和版
2026-05-16 展示会
先日、uniqlo のシャツの話題で「akamai」という企業を取り上げた。
話の腰が折れるので、この企業が提供しているサービスについては割愛した。
しかし、面白い技術なので知ってほしい、と思って説明しているページを探してみたものの、的確に書かれたものが見当たらない。
CDN という仕組みを提供している、ということと、その技術について非常に「ふわっと」書かれたページは多い。
ふわっと、というのは書いている人も理解していない、ということだ。
こんなに面白い技術、是非知ってほしいのだけど、書かれたページがないのか…
となれば、自分で書くしかあるまい。
最初に断っておくが、僕自身は akamai の中の人でも何でもないし、ページ提供者側として利用したこともない。
以前にどこかで聞いて技術概要は知っているが、細かな部分は間違っているかもしれない。
また、以前の Akamai は「CDNの企業」だったのだが、現在はセキュリティなども含めたサーバ運用全般を扱っているようだ。
それに伴い、CDN もどんどん新技術が導入されているようだが、僕はそうした細かなことは知らない。
これから書く話は「基本的な」ものに過ぎない。
現状を正しく表しているものではない、という反面、まだ単純だからわかりやすくもあると思う。
まず、CDN について。Content Delivery Network の略で、コンテンツを届けるネットワーク、という意味になる。
コンテンツという概念はまた微妙なものなのだが、この文脈の中では「WEB ページで提供されるデータ」だと思ってもらってよい。
通常は通信して取得するもので、わざわざ「届けて」もらう必要はないものだ。
ところで、インターネットは世界中と通信できる。
たとえば、海外旅行に行きたくてアフリカの観光サイトを見たとしよう。
もちろん通信できる。でも、ページが表示されるまでに時間がかかる。遅い。
理由は、遠いからだ。世界中と通信できると言っても、遠ければ時間はかかる。
通信は電気で行われていて、光の速さ…とよくいわれるが、途中で何度も中継が入る。
中継点ではコンピューターが処理していて、処理速度は光の速度よりずっと遅い。
距離に応じて中継点も増えるので、遠くへの通信は遅くなるのだ。
CDN は、こうした状況を改善する手段だ。
遠くへ通信するから遅いのだ。
ならば、世界中にサーバーを用意し、キャッシュ(データのコピー)を置いておけばよい。
アフリカのサイトを見ようと思った時に、実際にアフリカに接続するのではなく、日本国内から同じデータを取り寄せられる。
つまり、データが世界中にあらかじめ届けられているわけだ。これが CDN 。
…と、akamai や CDN で検索すると、ここまでの話を書いてあるだけのページが非常に多い。
ただ、そのアイディアが簡単に実現できるほど世の中は甘くない。
キャッシュを行おうとすれば、世界中にそのためのサーバが必要だ。誰がそのサーバの設置・維持料金を払うんだ?
すぐにページが取得できる、というのは、ネット利用者にとってはありがたいけど、それだけでは足りないのだ。
ここで、コンテンツ提供側の立場で考えてみよう。
コンテンツ提供者は、サーバを世界に向けて公開する。
公開する意図があってそうしているのだから、できるだけ多くの人に見てもらいたい。
しかし、ここにいくつかの問題がある。
まず、本当に世界中の人からアクセスが来ると、サーバの処理能力が問題となるのだ。
サーバを、強力な処理能力を持つものに交換しなくてはならない。
実際にはそんなに強力なサーバはないので、「負荷分散」という技術を使って、複数台のサーバで処理することになる。
通信速度の問題も付きまとう。
先にアフリカと通信する例を挙げたが、世界中に配信したとしても、遠くから見てもらうのは遅いのだ。
多くの人に見てもらいたいが、大抵の人はページを開いて、3秒待っても表示されなければ見るのを諦めてしまう。
サーバの処理能力をいくら上げたとしても、距離の問題はいかんともしがたい。
もう一つ、通信料金の問題がある。
個人でネットプロバイダと契約していると、定額制ということが多いのだが、インターネットというのは通信の量によってコストが決まるのだ。(従量制)
つまり、コンテンツ提供側には以下の問題がある
・サーバ増強コストの問題
・「距離」による通信速度の問題
・通信量に応じたコストの問題
このうち、特に距離の問題なんて解決するのが難しくて、世界中にホストを設置しなくてはならない。
これは同時に回線契約の数も増やさないといけないわけで、かかるコストは簡単には見通せない。青天井と言ってよいだろう。
CDN はこれを解決できる。
先に書いたが、世界の各所にキャッシュサーバを置いて、誰かがデータを必要とした際に、近いところからデータを得ようというものだからだ。
自分で設置しようと思えばコストは青天井でも、誰かの設置したものを借りるのであれば、現実的な金額に収まる。
つまり、少なくともコンテンツ提供側は、 akamai と契約してお金を払うだけの価値があるのだ。
ネットには、コンテンツ提供者がいて、それを見たい閲覧者がいる。
しかし、akamai を理解するには、もう一人の登場人物が必要だ。一番重要な役割を担っている。
それが、接続事業者、ネットプロバイダだ。
我々は、ネットに接続するときにネットプロバイダのサービスを使う。
勘違いされやすいのだけど、「回線業者」とは違う。回線業者は NTT など物理的な回線を提供する会社だ。
ネットプロバイダは、この回線を利用して、インターネットに接続するサービスを提供する。
ケーブルテレビのインターネットサービスなど、回線とプロバイダ事業を一体化して提供している場合もある。
携帯電話なども、docomo は回線業者であり、ネットプロバイダでもある。
でも、docomo 回線を借りてネットプロバイダ事業を行う、MVNO 業者のようなところもある。
ともかく、ネットプロバイダはインターネットへの接続サービスを行うのだが、ここで「ネットプロバイダ内」にもネットワークがある。
同じネットプロバイダを利用する顧客は、まずネットプロバイダの小さなネットワークに入り、そこからインターネットに接続しているのだ。
こうした、小さなネットワークが相互接続したもの、というのが「インターネット」のそもそもの語源だ。
さて、ネットプロバイダは通常月額料金を徴収して顧客にネット接続を提供している。
しかし、プロバイダのネットワークの外側にある「インターネット」への接続は、月額固定などではない。
データ通信量に応じて決まる、従量制だ。
つまり、ネットプロバイダにとっては、「社内の」ネットワークへのアクセスで完結してくれればありがたい。
インターネットへの接続コストが減るからだ。
でも、顧客はインターネットに接続したいからこそ、ネットプロバイダと契約している。
ここで akamai の登場だ。
akamai は、ネットプロバイダの「社内ネットワークに」キャッシュサーバを設置する。
すると、世界のどこかにあるはずのコンテンツが、社内にあることになるのだ。
外部へのアクセスが生じないので、ネットプロバイダのコストは減る。
これには副次的な効果もある。
ネットワークは、通信するデータ量が増えれば、より「太い」線が必要になる。
そして、太い線は月額の「基本料」が高い。先ほど従量課金と書いたが、基本料はそれとは別に必ず発生するものだ。
顧客が増え、通信量が増えれば、より太い線が必要になる。
しかし、キャッシュサーバの設置で外部への通信が行われないなら、太い線の契約をしないでも済む。
最初に、akamai のサーバの設置・維持費用は誰が出すのか? と問いかけた。
この答えがここにある。
ネットプロバイダは、社内にサーバを設置することに意味があるので、設置場所を提供し、お金を払ってでも設置を依頼する。
先に書いたように、お金はコンテンツ提供側からももらっているので、設置費用は「設置しない場合の回線利用コスト」よりも安い程度に設定できる。
利用者、コンテンツ提供者、ネットプロバイダ。
ここで、3者の思惑が一致し、キャッシュサーバーを設置すればだれもが幸せになれる状態が出来上がる。
しかし、まだ問題はあるのだ。これを「どうやって」技術的に実現するのだろう?
いちばん簡単な方法は、「すべての」 URL に対するアクセスを受け取るサーバーを作ることだ。
ネットプロバイダ内部からのアクセスを、すべて一旦キャッシュサーバーが受け取る。
キャッシュがあればそれを返し、なければ実際のコンテンツを取りに行く。取得した内容はキャッシュする。
じつは、これは「キャッシュプロクシ」と呼ばれる手法で、akamai 以前から実際に存在した。
そして、特定の目的では非常に有用だったが、一般的に使うには問題の多い方法でもあった。
まず、「プロクシ」について説明しよう。
キャッシュプロクシは、プロクシにキャッシュの機能を後付けしたものだからだ。
そもそもは proxy とは「代理人」の意味だ。
会社など、セキュリティを守る目的で外部のネットワークに直接接続したくない場合に、基本的には全員インターネットへのアクセスを禁止する。
そのうえで、「特定のサーバ」にだけアクセス可能な権限を与え、外部にアクセスしたい場合はそのサーバを経由するようにする。
つまり、外部へのアクセスは、すべて「代理人」に依頼するわけだ。
この特定サーバの事を、「プロクシサーバ」と呼ぶ。
これはもともとアクセスを制限するためのものだ。
全ての通信はプロクシを経由する。だから、ここにキャッシュを入れたり、様々な便利機能を入れることもできる。
その反面、プロクシを使用するといろいろと制限がある。
たとえば、動画を見ることはできないかもしれない。ネットゲームは遊べないかもしれない。
というより、もともとプロクシは前提として「ネット利用禁止」の時に使うのだ。それでも使いたい機能だけを提供する。
会社ならそうした制限はむしろ有用かもしれないが、ネットアクセスを提供することが仕事の「ネットプロバイダ」としては、この手段を使うわけには行かない。
ところで、ネットではプロクシの事を「串」という隠語で呼ぶことがある。
隠語を使う、というのは、悪いことに使う人も多いためだ。
プロクシは「代理人」なので、相手に自分の正体を明かさないでアクセスすることができる…場合がある。プロクシの設定にもよるけど。
何かの理由があって、存在を隠したい人にはとても良い仕組みだ。だから隠語になってしまうのだが。
そういう、何らかの事情がある人には、あえて制限は受け入れたうえで、メリットを得る必要があるのだ。
つまりはメリットとデメリットを秤にかけて、利用者が使うかどうかを選ばないといけない。
決して「自動で使われる」ものであってはならない。
一応、Windows の Chrome や Edge 等でもプロクシの利用は可能だ。
でも、いったいどれだけの人が設定方法を知っているだろう? 普通は使わないで良いものなのだ。
キャッシュサーバーを使うと便利だ、という環境を作りだせたとして、じゃぁ利用するのにはプロクシの設定をお願いね、というのではダメなのだ。
そんな状況では誰も利用しない。
そこで、akamai は巧妙な方法を編み出した。DNS を利用するのだ。
インターネット上のサーバには、IP アドレスが割り振られている。インターネット上の住所、と言われることが多い。
通信を行うときは、「必ず」相手の IP アドレスが必要となる。
でも、URL には IP アドレスは含まれていない。
どうなっているのかというと、「ドメイン名」を元に IP アドレスを調べる方法があるのだ。
その仕組みが DNS だ。
たとえば当ページは www.wizforest.com というドメイン名を使用している。
今ここをアクセスしている人は、DNS を使用してこのドメイン名を IP アドレスに変換し、アクセスしているのだ。
ところで、この DNS というデータベースが、データの登録方法に面白いやりかたを取っている。
話をするうえで必要なので、長くなるが説明しよう。
データベースというのは、普通はデータを1カ所に集約したものだ。
このページの例でいえば、www.wizforest.com 、というドメインに対しての IP アドレスを、どこかに登録しておけばよい。
そうすれば、すぐにドメインから IP アドレスを知ることができる。
実際、ドメインから IP アドレスへの変換は、初期のころは1つのデータベースで行われていたのだ。
たった1つのファイルにすべてのデータを入れ、ネットワークに接続するコンピューターは、そのファイルを取得して使用していた。
(この頃の話は過去に書いている)
しかし、ネット上のホストが増えるに従い、この方法は破綻した。
ホストが増えたり減ったりするたびにデータを変更しなくてはならないし、何よりも「世界中の」コンピューターに、最新情報を即座に届けないといけない。
それはもう無理だった。その状況を打開するために考えられたのが、DNS という「分散データベース」だ。
まず、データベースは組織ごとに準備する。
このページでいえば wizforest.com が「組織」であり、そこに www というコンピューターが公開されている、という形式になる。
他にも、メールサーバとか、DNS サーバとか、いろいろなコンピューターが組織内にある。
今、組織内のコンピューターとして「DNS サーバ」と書いた。
僕は自分の DNS サーバに、これら「組織内のサーバ」のデータを記入する。
そして、さらに上の組織… .com の DNS サーバに対して、wizfores.com の DNS サーバアドレスを通達しておく。
これで準備は完了。
誰かが www.wizforest.com にアクセスしたいと思ったら、まず、「その人の端末」に登録された DNS サーバに問い合わせを行う。
これは、その端末から一番近くにある DNS サーバのはずだ。
しかし、すぐ近くの DNS サーバが、世界中のコンピューター全てを知っていることなどまずないだろう。
でも、有名な .com の DNS サーバなら知っている。
そこに問い合わせると、www.wizforest.com は知らなくても、wizforest.com の DNS サーバなら知っている、と返答がある。
そして、wizforest.com の DNS サーバに問い合わせると、www.wizforest.com の IP アドレスが得られる。
DNS サーバはこうした分散管理により、非常に巨大なデータベースを作り上げている。
ところで、最初に問い合わせたサーバが「偶然知っている」こともあり得る。
僕のサイトなんかはともかく、google.com とか youtube.com の場合、問い合わせる人が非常に多い。
そうした問い合わせのたびにいちいち上のような長い手順は踏んでいられない。
DNS サーバは、一度問い合わせた内容はしばらく覚えておいて、次の問い合わせにはすぐ答えられる、という機能も持っている。
ところで、分散管理している、ということは、全体の整合性は誰も管理していない、ということでもある。
これは DNS の重大なセキュリティ―ホールだ。
上に、www.wizforest.com を問い合わせる際の、問い合わせのリレーを書いた。
最終的には、wizforest.com まで問い合わせが来て、正しい IP アドレスを得られる。
じゃぁ、最初に尋ねるネットプロバイダ内の DNS サーバが、聞かれたとたんに嘘の IP アドレスを教えたらどうなるだろう?
「問い合わせた内容は覚えておく」という機能があるので、すぐに IP アドレスを教えてもらえることはある。
だから、それが嘘かどうかなんて気にもせず、本当のアドレスだと信じてしまう。
これは「DNS ポイズニング」と呼ばれる、 DNS の仕組み自体が持つセキュリティホールだ。
(プログラムのバグなどによるセキュリティホールではなく、基本的な仕様自体に欠陥がある)
DNS サーバは「多数のサーバに問い合わせて」IP アドレスを調べるので、その経路のどこか1カ所でもハックされ、嘘を教えるようになっていたら、その問い合わせに関連したすべてのサーバは嘘を信じてしまうのだ。
誰かがどこかの DNS サーバをハッキングして、偽サイトにユーザーを誘導してクレジットカード番号を盗む…なんて犯罪が実際にある。
でも、この仕組みを使って、本物のサイトではなく「キャッシュサーバー」にアクセスさせてしまえば?
ここで、DNS ポイズニングのターゲットは、ネットプロバイダの利用者限定だ。
利用者が外部のサイトを見ようとしたときに、DNS がネットプロバイダ内に設置されたキャッシュサーバの IP アドレスを教える。
「偽のサイト」を教えているのだから DNS ポイズニングなのだが、そのサイトはキャッシュされたもので、寸分たがわず元のサイトと同じだ。
何の被害もないし、むしろメリットだらけなのだ。
セキュリティホールを使うのは褒められたことではないのだが、これは「良い使い方」だ。
akamai のシステム概要としては、以上のようなものだ。
まとめると、キャッシュにより、
・利用者は通信速度が上がる
・コンテンツ提供者は、サーバの負荷が下がる
・ネットプロバイダは回線利用料が下がる
特に、ネットプロバイダが回線利用料を下げるためには「自社にキャッシュサーバを置く」必要があるので、設置場所を提供してくれる。
また、この仕組みを維持するために、DNS という既存の仕組みを巧妙に利用している。
新しい技術ではないので、すぐに使い始めることができる。
誰もが得をする技術で、そのために誰もが喜んでお金を払う。
技術的にも経済的にもよくできている。
こんなシステムを設計したことが、すごいと思う。
おまけ
いい加減話が長いので終わりたいのだが、途中で DNS ポイズニングの話を書いたので、おまけ。
不安にさせたままじゃ申し訳ないからね。
フィッシング詐欺に注意、という呼びかけを見たことはあるだろうか?
メールなどのリンクで偽サイトに誘導されるので、そういうリンクを使わないことが対策とされる。
必要であれば、自分でサイトの URL をブックマークして置いたり、検索したりして入れば大丈夫、と…
でも、DNS ポイズニングは「正しい URL に対して」偽の IP アドレスを教える手法なので、上に書いた方法では対策できない。
DNS ポイズニングの対策はちゃんと用意されていて、誰でも簡単に利用できる。
DNS は普通自動設定されるが、手動で 8.8.8.8 と 8.8.4.4 という二つのアドレスを設定すると良い。
これは google が行っているサービスで、ややこしいので技術説明はしないが、DNS ポイズニングを防いでくれる。
google DNS が公開されて初期のころは、DNS ポイズニングを防いでしまうため、akamai の CDN が使えなくなる、という問題があった。
しかし、現在は akamai と google で協力しており、google DNS でも問題なく CDN が使用できるようになっている。
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
かなりどうでもよい話です。
度々書いているが、町内会の仕事をやっている。
基本的には頼まれて仕方なく。
でも、任期を超えても積極的にやっているので、周囲から見れば「好きでやっている」部類だろう。
まぁ、それはいいんだ。
基本的には町内会の仕事は任期のある物で、頻繁に人が入れ替わる。
そして、今年一緒に仕事しているのは、80越えのおばあちゃんだ。
僕が「ご出生お祝い会」や「子育てサロン」の仕事をしているので、女性の方が適役だろう、という判断。
やっているのは福祉関連で、敬老の日にお祝いの品を配布するのも大切な仕事だ。
回覧板でアンケートを配布し、後期高齢者にあたる 75歳以上の人で申請があった場合はお祝の品を配布する。
この集計作業はほぼ僕が行っているのだが、人がやるのでミスもある。
ミスがあって配布漏れ、とかなるとお祝にケチが付くので、集計データをエクセルにいれたら、別の人の目も入れてダブルチェックを行う。
ここで、一緒に仕事をしている方に手伝ってもらった。
ここまでが前置き。
エクセルとか、最近のパソコンわからないわー、というおばあちゃん。
まぁ普通の反応なのだけど、「最近のパソコン」というのがミソ。
昔フォートランのプログラム作ってたらしいのだ。
キーパンチャーなどではなく、プログラマ。
以前パソコンでもプログラムしようと思って Visual Basic をやってみたのだけど、フォートランと違い過ぎて挫折したらしい。
エクセルはもっと簡単ですよー、なんて話をしながら、せっかくなので昔はなんのマシンを使っていたのか訊いてみた。
CDC 160A らしい。あまり知らない機械。
「もう、古い機械よ。最近は 6500 とか、そういうの使ってるんじゃないかしら」
と言われたのだが、6500 は 1960年代の中ごろに発売され、80年代までサポートされていた機械だ。
さすがにもう使われていないと思う。
6000シリーズなら、今年の春に調べていたので、少しわかる。
いや、話としてはこれだけで終わりです。
「自分の生まれる前の機械」として興味を持って資料を漁っていた 6500 を、その時代に実際使っていた人が身近に居た、というだけ。
(6500 を使ってたわけではないけど、160A はその頃の廉価機)
町内会のご老人方、話聞くと面白いんだよね。
国鉄時代に鉄道員やってて駅長まで務めた人とか、携帯電話黎明期にシステム設計して料金体系定めた人とかいる。
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
以前、知人がプログラム勉強中、という話を書いた。
これが、すごい勢いで上達中。
半年前には「ポインタって何?」みたいなレベルだったのが、昔の雑誌の BASIC のプログラムを C 言語に変換して移植する、くらいのことはできるようになった。
といっても、数か月かかって1本のゲームを移植した、というレベルだけど。
そして、その最中に何度も質問されたのだけど、どんどん質問が具体的になる。
面白かったので、最近受けた質問を書いてみよう。
▼教科書に載っているプログラムと、ゲームの違いについて
言語の教科書に載っているようなプログラムは、1本道で別の処理が間に挟まることはない。
たとえば、繰り返し計算が必要な場合、for 文などでループして一気に計算してしまう。
でも、ゲームだと、1回の処理では少しづつ計算して、すべてのキャラについてそれを繰り返す。
こういうことは教科書には載ってないけど、いったいどこで学んだの?
僕の答え。
「言語の教科書」には載ってないけど、ゲーム作りの教科書みたいな本には書いてある。
また、昔のパソコン少年の多くが呼んでいた雑誌、「ベーマガ」こと、マイコン BASIC マガジンには、ゲーム作りのコツが書かれた連載が繰り返し掲載されていた。
コンピューターは本来計算の道具で、計算をするプログラムを作るのであれば、一気に計算して結果を出せばよい。
普通はこちらの使い方になるので、教科書もこのやり方で書かれている。
でも、ゲームに限らず、リアルタイムでコンピューターを使う用途…たとえば家電品なんかのプログラムは、一気に計算しないで、長い時間繰り返し少しづつ処理を繰り返している。
例えば洗濯機は、洗濯中でも蓋が明けられたら危険がないように緊急停止しないといけない。
洗濯機だから洗濯に専念する、というわけには行かず、少しづついろいろな処理を同時に行っている。
ゲームもそうしたプログラムの作り方の一種。
微小時間に区切って、その時間の中で必要な計算だけをするので、「時間で微分している」ともいえる。
そして、これを何回も処理して、実際の時間の中で連続させることで「積分」して、本来得たかった結果を得る。
▼ゲームのキャラ制御について
元の移植ゲームは、ずっと同じ内容を繰り返しているようなゲームだった。
構造がわかってきたので改造して、ボスを出そうとしたらしい。
ボスは最後だけしか出てこないが、メインループの中で処理はしないといけない。
ここで、ボスがいるかどうかをフラグに持っていて、「ボス登場時だけ、ボスを動かす関数を呼ぶ」という処理にしたらしい。
ここで疑問。
ゲーム中のほとんどの時間ボスは出てないのだが、毎回ループの中でフラグをチェックしているのが無駄な気がする。
こういうやり方しかないの?
また、新しいボスを1体出そうとしただけで、その「出現」管理フラグだけでなく、ボスの位置や現在の状態など、管理しないといけない変数が大量に増えた。
普通のゲームだと、いろいろな種類の敵が出るのが普通だけど、こういうデータを全部管理している物なの?
僕の答え。
この疑問を持つようになったら、もう C 言語ではなくて C++ に進むタイミング(笑)
C++ では、変数とプログラムを強く結びつけることで、変数管理の手間を感じにくいようにしている。
また、フラグをもって処理を制御するのではなく、以下のような方法もある。
まず、ゲーム中の各種の処理の関数は「呼び出すだけ」で良いようにしておく。
必要な時は、毎ループ呼び出される。引数などは持たない。
(もしくは、すべての関数で引数の持ち方を共通化しておく)
ポインタはデータの入っている配列などを示すもの、と思われがちだが、プログラムもメモリにあるのでポインタに入れることができる。
(と話したら、この知人はそのことは知っていた。ただ、そんなこともできる、というだけで使い方の具体例はわからないようだった)
例えばポインタの配列を用意して、最初は全部 0 を入れておく。
新しく処理したい敵などが出現した場合、この配列に、敵の処理関数のポインタを入れる。
0 の所を探して入れるようにする。
そして、敵が撃破されたり退場したりした場合、配列を 0 に戻す。
あとは、メインループの中で、配列の値を取り出して、0 なら無視、そうでなければ関数として呼び出す。
これで、フラグなしで敵の関数呼び出しを制御できる。
実際にはもう少し工夫しないと使いにくいのだけど、これと C++ のデータ領域の持ち方を組み合わせてやると、非常にゲームを作りやすくなる。
最初にリンクした半年前の質問と比べて、質問のレベルが段違いなのがお分かりいただけるだろうか。
彼が移植したゲームは、BASIC の移植なので「テキスト文字」の組み合わせで作られている、1980年代っぽさが強いゲームだ。
でも、内部処理については十分な勉強になったようだ。
次は、スプライトライブラリを使ってもう少しグラフィカルなゲームを作りたいらしい。
自分で手を動かして、十分悩んでから質問してくるので、その質問がいつも鋭い。物事の核心を突いてくるのだ。
彼から質問されて答えるのが、結構楽しみだ。
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
3連休だった週末の間に、Oh!X 令和版が届いた。
あ、そうか。もう発売だったのか。
予約したの、たしか1年半くらい前だったので忘れてた。
シャープが 1987 年に X68000 というコンピューターを発売する。
それ以前から、シャープには X1 という 8bit コンピューターのシリーズがあった。
8bit のころは、コンピューターはまだ全く新しいホビー。1つの会社の中でもどこが扱うか決まっておらず、部署ごとに互換性のない機械を別々に作っていたりするのが当たり前。
NEC は LSI 部門が TK-80 を作ったことから PC-8801 に至る流れがあり、子会社のホームエレクトロニクスは PC-6001 のシリーズを作り、コンピューター部門は 16bit の PC-9801 を作っていた。
シャープも、MZ-80 から始まる MZ シリーズを電子機器事業部が作っていたが、パソコンの出力はテレビなのだからと、テレビ部門が画像機能を強化した X1 シリーズを作り出す。
そして、X1 シリーズの「 16bit 版」が X68000 だ。いきなり数字が大きくなったが、68000 というのは当時「ホビー用の最高峰」と目されていた CPU の型番で、すごい CPU を搭載しているとのアピールだ。
以降、X68000 は長いので X68k と表記する。k はキロで 1000 の意味だ。
この X68k シリーズ、僕は所有していたし大好きだった。人生を方向づけた、と言っても過言ではない。
でも、世間的には「売れなかったマイナー機種」に過ぎない。
当時、各社から出ているコンピューターは互換性がなかったので、「会社ごとのパソコン専門誌」が発売されていた。
シャープの専門誌は Oh!MZ だったのだが、X68k の発売を機に、Oh!X と名前が変わる。
MZ にも 16bit 機は発売されたのだが、ホビー用ではなく仕事用の位置づけだった。
専門誌を購入する個人は「ホビー」を求めているので、誌名も MZ から X に変わったのだ。
そして、この Oh!X は他の機種向け専門誌と大きく違う編集方針だった。
なんと、記事の多くは X68k とは関係がないのだ。
なにせ、マイナーコンピューターでソフトがないのだから、ソフトレビューなどで記事を埋められない。
記事の多くは、ホビー向けとしてプログラムを自作する人のための、アルゴリズム解説だった。
グラフィック特集、ゲーム特集なんかは人気があったように思う。同じ内容の特集でも年に一度くらいは載せていたと思うが、少しづつ切り口が違う。
グラフィック特集としても、画像フィルタの作り方のような解説もあれば、レイトレーシングのアルゴリズム解説、プリントアウトのためのプリンタ制御方法、物理演算エンジンの考え方、などなど。
ゲーム特集だって、初歩的なゲームの作り方から、乱数の使いどころや、シューティングゲーム、RPG、カード(トランプゲーム)、3D、などなど。
それはもう、プログラムしない人には面白くない内容なのだ。そして僕はプログラムが趣味だったので、めっぽう好きだった。
しかし、X68k は先に書いたようにマイナーパソコンで、「後継機」と呼べるようなものがなかった。
クロックアップしただけ、CPU を次世代に乗せ換えただけ、の機械はあったが、全体設計が変わらないため、CPU が速くなっても別の部分が足を引っ張る感じで、驚くような性能にはならない。
後継機がないままシャープはオリジナルのパソコン事業から撤退し、IBM 互換機を作り始めた。
Oh!X も休刊となった。
今回の Oh!X 令和版は、3回目の復刊。
1回目は買った。単に X68k を懐かしみ、古い機械をメンテナンスして使い続けるような「後ろ向きな」記事が多かった。
これで幻滅してしまい、2回目の復刊は買わなかった。
2016 年…もう10年も前だ。「ミニファミコン」が発売された。
以前はある程度性能のある PC でないとできなかった「エミュレーション」が、おもちゃのような CPU でもできるようになり、小型化したファミコンのケースに内蔵ソフトを入れて販売したものだ。
これが大人気で、メガドラや PC エンジン、プレステなどの「公式エミュレーション機」が発売される。
そして、その流れで X68k のエミュレータが企画される。X68000 Z という名前だった。
発売は2年前。僕も購入し、日記に書いている。
その半年ほど後に、Oh!X が復刊する、という話が出てきた。
まだ内容は何も決まっていないのに、アマゾンが予約を始めたので、購入することに決めた。
…と、前振りが長いのだが、1年半前に予約した雑誌が、数日前に届いたのだ。
ハッキリ言って、注文したのも忘れていたレベルだよ。
購入時にしばらく遊んでいた X68kZ も、片付けてしまった。
付属ソフトとして X68kZ 用のゲームがついているのだが、まだ遊んでいない。
本誌の内容を読んでみた。
第一特集が AI の話だった。X68k と一切関係ない。素晴らしい。
大ボリュームなのでまだ詳細読んでおらず、流し読みしただけ。
昨今、生成 AI はブームになっているが、ちゃんと理解している人は少ない。
勘違いしたまま誤信している人も多いので、自分で解説記事書いたものかどうか…としばらくもやもやしていた時期があるのだが、基礎的な部分、歴史的な部分も含めてしっかり書いてある。
うん。素晴らしい。AI について興味がある人は、Oh!X 令和版を買って読むべきだ。
(受注生産なので、すでにプレミア価格付き始めているけど)
ただ、先日 元Twitter で見た限りでは、X68kZ 関連の記事を期待していたので、AI 関連いらない、と言っている人もいた。
まぁ、専門誌だと思って購入したのであれば、そうなるよね。
僕としては、こうした技術解説こそ Oh!X らしいと思ってしまうのだけど。
第二特集が、その X68kZ 。これがきっかけで復刊したのだから、当然扱わないとね。
内容は X68kZ をどう活用するか、という内容で、今更 X68k の開発環境を整えてプログラムするような話。
…いや、僕には今更だな。あまり興味ない。
いまからプログラムをしたい人は、今時の環境を学習したほうが良い。
DoGA CGA コンテストの軌跡が書かれたページもあった。
DoGA とは、もともと大阪大学と京都大学のマイコンクラブが共同で始めた「コンピューターアニメのための」プロジェクトだった。その成果発表場として、Oh!X に連載を持っていた。
そして、X68k 用の「3D CG アニメツール」が作られたときは、Oh!X の付録として配布された。
ただ、勘違いしてはいけないのは、DoGA は Oh!X とは独立した組織だし、X68k 以外のコンピューター用にもツールを開発していた。CGA コンテストも、機種もツールも問わない。
CGA コンテストは、1990 年代にはあまりにも無謀な夢だった「個人でアニメを作成」を後押しするためのものだった。
アニメは大量の絵を描く必要があり、個人で作ることは無謀、と思われていた。
それを、コンピューターのパワーでどうにかできるのではないか、というのが DoGA の考えだった。
このコンテスト、2023年の第32回で終了したそうだ。知らなかった。まだ続いているのだと思っていた。
終了理由は、コンテストの設立目的が果たせたから。
今は一人でアニメ作成するクリエイターが、それなりにいる。
質を高める目的で競い合わせる必要はない、ということだろう。
新海誠監督がまだ無名だった頃にDoGA CGA コンテストで受賞していることは有名だ。
付属 DVD に全受賞作のダイジェストが入っているらしいので、今度見てみよう。
とにかく分厚いし、X68kZ 用のゲームの SD カードと、DVD-ROM が付録になっている。大ボリュームだ。
一気に見る時間はないので、少しづつ楽しみたいと思う。
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
仕事をもらっている会社が、東京ビッグサイトで行われる展示会にブースを出すことになり、手伝いを依頼された。
普段僕がプログラムを作っているものを展示するわけで、参加させていただいた。
教育関係の仕事であれば何でも展示可能な展示会だ。
僕はここ数年、教育関連のサービスのプログラムを手伝っている。
基本的には3日間ブースに詰めていて、興味を持ってくれた方に商品を説明する。
普段の仕事とは全く違うが、文化祭のようでなかなか楽しい。
あと、すでに商品を使った経験のある人から、学生の時使ってました、なんて言われるのは嬉しい。
休憩時間に他のブースを回るのも楽しかった。
結構、教育とは関係なさそうな展示もある。
しかし、説明を聞いてみると、うまい具合に関係しているのだ。
たとえば、味噌製造業が参加していた。
まぁ、うちの子供が保育園の時も、食育教育として、みそづくり体験とかやってたし、そういうものかな…と思い、少し話を聞いてみた。
子供の食育だけでなく、小学生くらいでも家庭科の一環としてやったり、高校生でも生物による発酵として授業をやったり、老人ホームで体験教室をやったり、いろいろあるのだそうだ。
「発行と腐敗の違い」を教えるために、2つ作ってわざと片方腐らせたりすることもあるらしい。みそメーカーとしては少し残念なので、できればやりたくないそうだが。
なるほどー、と感心していると、そのメーカーさんのある九州は麦みそ文化の地域で、麦みそなら夏場は1か月で味噌になるという。関東では豆味噌で3か月程度、愛知の赤みそなら3年、と聞いた。
保育園で作っていたのは豆味噌で、12月ごろ仕込んで、卒業前の3月には給食に出していた。
冬に作るのは、その方が腐敗する可能性が低いため。
でも、発酵が十分でなく、豆の粒がまだ残っていたな。夏場で3か月、冬なら半年は置かないといけなかったのか。
麦みそは発酵が速いので、夏休みの宿題にみそづくりの観察日記とか書けるそうだ。これは、地の利を生かして他のメーカーではできない差別化を図れているのだ。素晴らしい。
JAMSTEC もブースを出していた。
僕の日記には以前よく JAMSTEC が出てきていたが、妻の友達が JAMSTEC の関連会社に勤めていて、公開日に見に行ったり、非売品のグッズをもらったりしていたためだ。
今回の展示会では JAMSTEC はまったく関連無さそうに思えたが、最近新しい部署が作られ、教育関連に乗り出したのだという。
以前、テレビ番組で見たことがあった「電子黒板」が、メーカーのブースで展示されていた。
通常、電子黒板というと大型モニターの事だ。
ただし、モニターに最初からソフトウェアが内蔵されいて、タッチペンで文字や線を描くことができる。
何らかの方法でデータを渡せば、スライドのように表示することもできるし、動画を出すこともできる。
実際には、黒板の代わりにいきなり電子黒板に変わる、ということはあまりないようで、電子黒板が教室に新しく配置されることになる。
…のだが、黒板もあるし電子黒板もある、という状態では狭くて使いにくいそうなのだ。
そこで、黒板メーカーが新しい「電子黒板」に乗り出した。
黒板に直接投影し、電子黒板相当のことができる「プロジェクター」を開発したのだ。
最初から用途を絞り込んでいるため、普通のプロジェクターと違って、黒板付近の天井に設置する。
真上から投影する形になるため、先生が近づいても影ができない。
また、黒板に投影しているので、画像の投影と黒板の文字を共存できる。
既存の黒板でも使えるが、よりプロジェクター投影に向いている黒板もセットで開発している。
「新しい商品に軸足を移す」とかではなく、従来の黒板も一緒に売り込んでいるのだ。
これ、テレビで見たときに発想のすごさに驚いていたので、実際にどの程度まで近づいても影ができないのか、など知りたかった。
まぁ、さすがに黒板に手を使づけて文字を書こうとすれば影になる。でも、前に立って話をするレベルなら影はない。通常のプロジェクターだと、前に立てば影になるので、これだけでも十分すごい。
感心しながら見てたら、対応してくれた人が僕が見たテレビ番組をちゃんと覚えてくれていた。
というよりも、「2年前に放映されたその番組を見て、この会社に就職したんですよ」とのこと。
番組見てすごいと感じる人、僕だけでなく、ちゃんといたんだなぁ。
最近の新商品として、普通の電子黒板…薄型テレビも開発しているらしいのだが、こちらはホワイトボードマーカーに画面に文字が書ける。
「タッチペンで電子的に書く」などではなく、物理的にアナログの文字が書けることにこだわりがあるらしい。
オルゴールの缶詰、というものを売っているメーカーがあった。
缶を開けると中にムーブメントが入っている。
僕自身がオルゴール好きなので話を聞いてみた。これ、缶が共鳴箱になって音が大きく聞こえたりしますか?
残念ながらそうではないという。ムーブメントのみなので音は小さく、しっかりした木のテーブルなどの上に置くと共鳴して大きくなる。
でも、缶は小さいし金属板も薄いので、共鳴するほどにはならないらしい。
共鳴させるような缶を開発してしまうと、コストがかかり過ぎてしまいますから、とのこと。
缶のラベルも請け負えるし、少し高くなるが曲も自由に作れるそうだ。
学校の卒業記念品として校歌のオルゴールを作り、校章デザインの缶に入れる、などするようだ。
(この話、家に帰ってから家族にしたところ、長女が「そういう記念品の方がいいなぁ」と言っていた。
長女は中学卒業時に学校の銘が入った「モバイルバッテリー」をもらったのだが、使っているうちに膨れて、記念品なのに捨てざるを得なかった。)
自分が出店側に回った、というのも面白い体験だったのですが、いろいろな考え方の商品があることが楽しめました。
もちろん、GIGA スクール教育向けなどで Lenovo や Apple 、Google for Educations 等のブースもありましたが、感想としては「普通」としか言いようがないです。大会社は、すでに知っていることを展示しているだけであまり面白くはない。
以降、翌日追記
展示会の各社ブースで貰ったグッズなど。
▼ソフトバンクが、ミルキーの小箱を配布していた。
配布時は、ぺこちゃんのパッケージが見えるように配布していたのだが、裏返すと「お父さん」(白い犬のイラスト)だった。ソフトバンクらしい。
これはそれだけで、特に面白いことはない。
▼新学社が、「うちのタマ知りませんか?」デザインのバッグを配布していた。
もちろん、バッグの中には宣伝チラシが詰まっている。バッグ自体も、不織布の安物。
しかし、ぼくこのキャラ好きだったんだよね。見てたら「ぜひ」と渡されたのでもらっておいた。
中のチラシによれば、新学社は、「うちのタマ」のキャラを使用した、小学生向けの教材などを作っているらしい。
…と、家で確認していたら、長女に「小学生の時の計算ドリルがタマだったよ」と言われた。
そうか、すでに我が家ではお世話になっていたか。
バッグはかわいいので置いとくけど、薄い安物だし、特に使い道ないかな…
▼アライドテレシス(ネットワーク機器の会社)が、サランラップの短いやつ(22cm)を配布していた。
ノベルティとして外箱が特別な印刷になっているもの。
これが、24ポートのスイッチングハブを模している。
RJ45ポートのサイズなど実寸大のようだし、これくらいのサイズ感ということ?
…と思って検索したところ、そうでも無いようだ。
22cm のサランラップサイズでは、ラックマウントもできなくなってしまうが、実際の機種は普通に 1U サイズ。
ラックマウントの 1U は高さが 44.5mm ほどで、サランラップの箱は、今測ったところでは 40mm ほど。
大体同じ高さだから、ポート部分だけ再現してみた、という感じか。
しかし、スイッチングハブ柄のサランラップ、というのはちょっとおもしろい。
▼プリンストンが、缶ペンケースのようなものを配布していた。
「中にスタイラスペンが入っています」とのこと。
配布するくらいだから、100円ショップで売ってるような静電容量式のペンかな…と思ったら、確認してびっくり。
サクラクレパスと共同開発の、クーピーペンシル型アクティブスタイラスだった。サクラクレパスのショップ価格では、6,600円。
充電して使ってみる。
iPad モードと汎用モードを切り替えられるらしい。自分の Chromebook (ペン対応)で、汎用モードで動作することを確認。
次女にみせたところ、かわいい、とすっかり貰う気でいる。
まずは自分のスマホで試している。…ん? スマホはペン対応ではないが動いている。
ということは、汎用モードというのは、単に静電容量ペンとして動いているだけか。
静電容量ペン、というのはつまり「指先を細くしたもの」に過ぎない。
ただ、静電容量、というのは、「画面と指先の静電気の移動」を確認する仕組みなのだ。細くすると移動の量が減るため、感知しづらくなる。
そのため、100円で売っているようなものは、ある程度ペン先が太い。
細く見える場合でも、透明なディスクなどが付いていて、静電気の移動経路を十分に確保している。
どうやら、このペンの「互換モード」では、ペン先に微弱電流を流すことで、細いペン先でも十分感知できるようにするもの、ということらしい。
細いことで位置指定などは正確にできるようになるが、いわゆる「スタイラスペン」として、筆圧感知や傾き検知をする機能はない。
汎用モード、というのが本当に静電容量だけなのか、あらためて Chromebook を使って確認。
もしかしたら、ペン対応端末の場合、特有の何かを拾って動作を変更したりするかもしれないからね。
…そんなことはなかった。ペン対応の Chromebook でも、静電容量として動作していた。
こちらの WEBページは、WEB で動く簡単なお絵描きツールを提供しているが、デバイスがマウスなのか、ペンなのか、指なのかを自動で検知する。
使用しているペンは、指として検知された。つまり、静電容量としてしか動作しない。
確認したところ、汎用モードはともかく、iPad モードでは Apple pencil の互換品のようにふるまうらしい。
ただし、この場合も筆圧検知や傾き検知はない。
先に「かわいい」と言っていた次女は、我が家で唯一の iPad 所有者。
高校の指定で iPad を使う必要があったので、購入したのだ。
(長女の高校は Chromebook 、長男の入学時は GIGA スクール以前だったが、途中から Windows が必要となった)
長女、すでに Applepencil互換品は持ってるんだよね。筆圧も傾きも検知できるやつ。
そんなわけで、6,600円もする品をもらってきたけど、「かわいい」という以外に使い道がないなぁ…
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |