CPUのクロック数神話が未だに人気

知人「新しいコンピューターに買い換えようと思うんだけど」
おいら「うん」
知人「いまのコンピューターより遅いのってある?」
→Corei3~Corei7のノートPCのカタログ。実売3~7万
→と、Pentium M 1.7GHzのノートPCを提示される。
おいら「・・・この中にある、どのノートPCでも今のより速いよ。」
知人「えー、だってこのカタログのって、1.4GHzとかあるよ?」

そんな会話がこの週末にあった。

確かに、Pentium3の時代はCPUの性能=クロック周波数だったけど、
Pentium4からは周波数だけでは性能が分からなくなった。

クロック数を人間が文字を書く速度にたとえてみようか。
あるAさん(最近のCPU)は、漢字とか難しい文字も使える優等生。
でも、文字を書く速度はちょっと遅い。
Bさん(古いのCPU)は、ひらがなしか書けないけど、文字を書くのはそこそこ速い。

ひらがなを書くだけならば、Bさんの方が早いけど、
平均的に文章を書くのが速いのはAさんとなる。

そんな風に、クロック数(=このたとえでは文字を書く早さ)だけでは、
少なくとも、CPUの世代間での性能の比較は出来ない。

というのも、CPUの世代が上がるにつれて、
クロックあたりで処理できる能力が飛躍的に向上しているからだ。

たとえば、最近のCoreiシリーズでは、
動画などの再生に使える演算機能を持っている。
昔の、四則演算ぐらいしか計算能力のないCPUとクロック数で比較しても意味がない。

もちろん、他にも要因がある。

さっきの文字を書くたとえで、AさんとBさんが写経したとする。

Aさんは、元の文章を一度見ると10文字を覚えられる。
一方、Bさんは、元の文章を見ても1文字しか覚えられない。
そのため、Bさんは写経の際に、元の文章を見て、書いて、という繰り返しを何度も行う。
Aさんなら、元の文章を見て、10文字書いてという繰り返しだ。
Aさんの方が、写経の速度は速いだろう。
※メモリーのバス幅や、キャッシュの大きさの話。

他にも、DualCoreなど様々な機能が搭載されているため、
CPUの性能を簡単に比較することは困難だ。
※この辺は、Aさんは左右の手で同時に別の文章が書けるとかの話になるかな?
※「Aさんは実は双子で~」だと、それはDualCPUの話になる。

ということで
おいら「クロックあたりの性能が上がっているし、
    今は、2つのCPUを積んでいるような物もあるから、
    一概にクロックでは比較できないんだよ」
と答えておいた。

その後続いた
知人「じゃあ、何で比較すれば良いの?」
おいら「ベンチマークとかネットの情報を集めて判断するしかない。でも世代が後のCPUの方が基本的に性能は上がっているよ」
という会話で、知人は、微妙に途方に暮れていたけど、事実だからしょうがない。

それにしても、クロック数神話が未だに根強いというのは、
ある意味困った事態だなぁと思った週末。
※同じ種類のCPU同士ならクロック数の比較で良いんだけどね。

DropBoxのメールアドレス流出疑惑

先日、DropBoxのメールアドレス流出疑惑が報道された:
http://jp.techcrunch.com/archives/20120717dropbox-users-targeted-by-spam-possible-address-leak-to-blame/

なんでも、DropBoxに氏か使っていないメールアドレスに、
SPAMメールが届いたという報告が何件か寄せられているそうな。

このニュースの後、音沙汰がないのでちょっと気になる。

EyeFi買って、使ってみた感想

買おうかどうしようか悩んでいた、EyeFiをついに買ってしまった。
仕事で使っていて、その便利さは痛いほど分かっていたので、悩み抜いた上で購入。

これを使えばデジカメで撮影中に、どんどんPCに転送されるから、
星を自動でインターバル撮影していても、どんどんPCで閲覧が出来るというのは便利だし(*1)
出先で撮影した写真も、PCに自動転送されるから、
面倒な、カードの差し替えなどから解放されてもの凄く便利♪

のはずだったんだけど、プライベートで使ってみると、
不便な点に気がついてきた。
まさか、こんな落とし穴があるなんて・・・

その落とし穴とは
EyeFIに対応したデジカメだと使い勝手が悪くなる。
というもの。

いや、ホントこれは痛い。

もっとも、もともと、CANONのデジカメで、EyeFi対応機だと
「EyeFiでデータ転送と、撮影は排他」という特性は知っていた。
つまり、CANONのデジカメで、EyeFi対応だと、
画像転送中に撮影が起きると転送が中断されるという特性だ。
この特性があると、前述の(*1)の星をとりながらPCに転送と言うことが出来ない。

ただ、これは事前に知っていたので、EyeFiを買う前に、SONY のα55で試し撮りをしていて、
こちらではそういう問題はないところまで確認していた。

でも、α55だと別の問題が潜んでいた。

どうやら、α55はEyeFiを使うと、起動が遅くなるみたいなのだ。
恐らく、この機種はEyeFi対応機で、起動時にEyeFiと通信しているようで、
それが、遅さの原因のようである。

星を撮るのには問題はないけど、
旅行などのスナップを撮るときに、起動に数秒待たされるのはちょっと困る。
特に、被写体が、姪とか子供だと、じっとしていてくれないから、結構大変。

今のところ、仕事、プライベート含め、
10種類以上の機種でEyeFiを試してみたけど、
EyeFiに対応している機種は、EyeFiに対応しているからこそ、
EyeFiに対応してないレガシーな機種よりも、使い勝手が悪くなっているという傾向があるようです。

というわけで、購入を検討している人は、
一度、自分の機種を何処かで試してみると良いかもしれない。

幸い、自分が、他に持っているコンデジの
Panasonic DMC-LZ10は、元々EyeFiに対応してないため、
問題なく動作しているようである。
こっちで、普段使おうかなと考えている。

でも、コンデジで使うならば、

こっちで十分なのに、

こっちを買っちゃっているのが痛いところだよね。
※RAW/動画/AdHockに対応しているか、してないかの差。
※AdHockは無線の接続方式の1つで、ノートパソコンと直接繋ぐ方式のこと。
 普通は「PC⇔アクセスポイント⇔EyeFi」となる接続が「PC⇔EyeFi」でできるようになる。

【MZ-2200】マリオブラザーススペシャル

というわけで、自分の懐古主義的なゲーム紹介。

MZ-2500でよく遊んだゲームの一つがこのマリオブラザーススペシャルだ。
※MZ-2200モードでプレイ

スペシャルマリオブラザーズだと記憶していたら、
ググってみたら、こっちのタイトルの方が正しいらしい。

アーケード用のゲームが元で、その後ファミコンとかに移植されているけど、
パソコン版はパソコン版で、ちょっと雰囲気が違うと思う。

というか、プレイ動画があったので、それを見て貰う方が早いかな。

こんなゲームをプレイしつつ、やがて、プログラムに興味を持つようになったわけだ。

ハイドライドIIってゲームもあったね。

このところ、懐古主義的に、
自分がプレイしたゲームを順番に紹介していますが、今回はハイドライドII。

ところで、昨日の記事で出てきたドラゴンクエスト。
あれは、ファミコン初のRPG・・・とされている。

【続きを読む】

ドアドア

ドアドアといえば、中村光一氏の出世作。
これも、自分が幼少期にMZ-2500で遊んだゲームの一つ。

というか、MZ-2500は先日も書いたとおり、名機であり、迷機で、
過去のMZシリーズのコンピューターとしても動作した。

ドアドアはMZ-2500版は存在せず、MZ-2000版が存在する。
つまり、自分は、ドアドアをMZ-2500のMZ-2000モードで遊んでいたわけだ。

ドアドアのゲームは一見シンプルで、
主人公キャラを移動させて、襲ってくるモンスター達をドアの中に閉じ込めてしまうというゲーム。
でも、敵キャラの動きにバリエーションがあったりして、なかなか奥が深い。

今でも、iアプリとかで売られているらしい。

ところで、この中村光一氏は、昨日、ちらっと話題に出した堀井雄二氏と並んで超有名な2人。
あのドラゴンクエストの生みの親でもあるわけだ。
この二人が第1回ゲーム・ホビープログラムコンテストで準優勝(中村氏)と入賞(堀井氏)をとり、
出会わなかったらドラゴンクエストは生まれなかったと言っても過言ではない。
この辺の話題は、ドラゴンクエストへの道という漫画が詳しい。

そして、巷でドラゴンクエストが流行っていた時代、
自分がプレイしていたRPGと言えば「ハイドライドII」だったりする。

といったところで、また次回。

MZ-2500のゲーム~SPY001~

さて、連日お送りしているMZ-2500で遊んだゲーム。

その中でも、SPY001というゲームは、アドベンチャーゲームの黎明期のソフト。

主人公は産業スパイになって、ライバル会社から、
プロジェクトの資料を盗むという、ストーリーは普通なんだけど、
当時のアドベンチャーゲームは、コマンド入力式というのが主流だった。

つまり、ゲームスタートするとまず↓こんな画面が表示されてコマンド入力待ちになる。

この画像は自分が絵心がないという理由以上に、
本当に、線とべた塗りで構成される、こんな画面が表示される。

ここで、ユーザーがすることは「step on mat」と入力することだ。
これで、マットの上に載って、自動ドアが開くことになる。

その上で、「front」と入力すると建物中に入ることになる。
ちなみに、建物の中に入ると画面の再描画となって、数十秒待たされるのは仕様だ。

ところで、これらのコマンド、ほぼノーヒントである。
最初の、自動ドアが開いてない状態で「go front」とか、
やっても「コマンドの意味が分からない」と空しくメッセージが表示されるだけ。

数年前に流行った密室脱出ゲームに近いノリの無理ゲーが、このSPY001。

このゲームをもっと難しくしているのが、ゲーム中盤に登場するコンピューターだ。
登場したコンピューターの前で「use computer」とすると、
BASICのコマンド受付画面が表示される。
つまり、実際にコンピューターの中を探している体で操作しろという、
間違いなく、今のPCユーザーではクリアできない作り。

そんなゲームがあった時代もあるわけです。

ちなみに、このコマンド入力方式は、
かの有名なポートピア連続殺人事件のPC版がそうだったらしく、
作者の堀井雄二氏は、キーボードがないファミコンに移植をする際に、
当時オフィス系ソフトで流行始めていたコマンド選択方式を採用して、
その後の、アドベンチャーゲームがコマンド選択方式に変っていったのは有名な話だ。

そういえば、堀井雄二氏といえば、
昨日出したゲームのリストで気になる作品がありましたが、それはまた次回。

MZのゲーム「さんびきのこぶたシリーズ」

MZ-2500で遊んだゲームの思い出と言えば、
・ドアドア
・スペシャルマリオブラザーズ
・ハイドライドII
・さんびきのこぶたシリーズ
・SKY
・ギャング
・SPY001
・コズミックガンナー
など、色々とある。
他にもタイトルを失念したゲームも数多い。

ところで、前にMZ-2500は非常に画期的なコンピューターと書いたけど、
その一端がこれで、上の一部のゲームは、MZ-2000のゲームだ。

というのもMZ-2500は、スイッチ一つで
MZ-80B・MZ-2000/2200・MZ-2500の各コンピューターとして動かすことも可能だった。

というわけで、しばらくは、これらゲームのレビューでもしてみよう。

今日はまずは、さんびきのこぶたシリーズ。 【続きを読む】

【昔話を】MZ-2500との出会い【しよう】

ネタ切れだし、コンピューター以外の話題ばかりも、アレなので、
自伝ではないですが、たまには昔の話をば。

最も古い、自分のコンピューターの記憶は、
小学校上がるか上がらないかの時。
MZ-2500が家にやってきたときの記憶から始まります。

いや、実際には、MZ-2500が来た後で、
前のPCで遊んでいたゲームで遊びたいとか、駄々をこねた記憶もあるので、
それよりも前にPCは触っていたのですが、記憶が曖昧で、
記憶がそれなりに鮮明に覚えているのがMZ-2500が来た日のことからな。

MZ-2500は画期的なPCだったのですが、それは別の機会に書くとして、
MZ-2500にはデモとしてスロットマシーンゲームが添付されていたわけだ。

そのデモを動かすカセットがこれ:

この記事を書くのに、ちょっと、昔のカセットケースを漁って発掘した。
というか、あるかも知れないで探して、出てくる自分の部屋が怖い。(;´Д`)

それはさておき、MZ-2500が来たときに、
このスロットマシーンゲームを深夜まで遊んだことを覚えている。

ただ、デモゲームなので、コインが0になると終わる作り。
それでも、攻略法とかみつけて、遊んでいるウチに・・・

程なくして、このスロットマシーンゲームのプログラムを
何となくで改造して、コイン無限大でプレイするようになったのが、
もしかすると、自分の今の原点なのかも知れない。

ちなみに、その当時、プログラムのプの字も分からずな時。

どれぐらい、分かってないかというと、
MZ-2500が来た後にマイコンBASICマガジンを、
兄に言われるがままに朗読(兄が入力)して、
「l」と「1」の区別がつかないでいた記憶が鮮明に残っており、
そんなときに、良く改造なんてしてたなぁと今でも思う。

気分が乗れば続く。


↑この本は、小学校中学年ぐらいに読んでた本ですな。
 この本から、ゲームプログラムに興味を持ったのかも知れない話は、これも別の機会に。

PHPの引数の順番は統一感なさ過ぎ

PHPにはimplodeという微妙な命令がある。
string implode ( string $glue , array $pieces )

いや、内容自体は全然普通で、
$piecesの中身を、$glueで連結した文字列を返す命令だ。
implode(',', array('abc','def','ghi')); //"abc,def,ghi"という文字列

何が微妙なのかというと、この命令の引数は、
逆にしてもちゃんと動作する。
string implode (array $pieces, string $glue)

一応、マニュアルにもそのことは書いてあるから、
知っている人も多いと思う。

ところで、PHPには連想配列のキーが存在するかを調べるための命令という物がある。
その名はarray_key_exists
bool array_key_exists ( mixed $key , array $search )
これもこれで、便利でよく使う命令ではあるんだけど、

これを、連想配列ではなく、オブジェクトに対して似たような事をする命令、
つまり、オブジェクトのプロパティーが存在するかを調べるための命令という物がある。
その名もproperty_exists

この命令の定義はこう:
bool property_exists ( mixed $class , string $property )

もうね・・・この、引数の統一感のなさが、
PHPのバグを生み出す要因の一つだと思う。