はてなキーワード: BYTEとは
続き
そのうち、世の中はウィンドウズ時代に突入し、パソコンも16ビットパソコンから32ビットパソコンへと移行していったのである。…といっても、ウィンドウズ3.1は、とっくに発売されていたが、ゲームの世界が未だにDOSベースだったので、それまでは何とかなっていたのであった。が、こう周りがウィンドウズだらけになってくると、流石に不安になって、DOSからの移行を考えざるを得なくなってしまったのであった。
上述のPC-286VEでも、ウィンドウズを試してみたことがあった。そのころは、ウィンドウズは3.0で、フロッピー5枚組という、今から考えればささやかな構成であった。当時は、ウィンドウズ3.0対応のソフトもほとんどなく、これは試してみるだけで終わったが。
実は、32ビットパソコンへの移行の際に、一つの考えがあったのである。つまり、Macへの移行である。当時、Macの世界も変革の時期を迎えていたらしく、小さい筐体が却って可愛らしいマック・クラシックやカラーマック(多分これでいいんだよな…)が発売されると共に、通常のサイズのマックも、そこそこの(ウィンドウズマシンと変わらない)価格で発売されるようになっていたのである。
しかしながら、相変わらずゲームユーザーであった私は、ゲームソフトのコーナーを一瞥して、やっぱりゲームはDOSベースが多い、とばかりに、ウィンドウズマシンを選んだのであった。思えば、ここが運命の分かれ道であった。
まぁ、ウィンドウズがいいか、マックがいいかは、今でも議論が分かれるところではあるが、このときマックを選択していれば、今の私のパソコンライフは、かなり違ったものになっていただろうことは、疑いのないところではある。
で、購入したマシンは、16ビットに引き続き、EPSONの、いわゆる「ジャケットサイズ」(…といっても、今はもうLPレコードそのものがマイナーな存在であるが…)の小さな筐体がウリのマシンであった。CPUは、486DXの廉価版の486SXで、クロックは20MHzだった、確か。この辺は記憶が曖昧。120MBのハードディスクと8MBのメモリが付いていた。一応、ウィンドウズ3.1は動くというスペック。
このPC-486SEは、当然のことながら、後にいろいろと手を加えた。
こんな具合に。
グラフィックアクセレータ追加(メルコ製、サウンドボードに装着するタイプ)
メモリ8MB追加して16MBに。
CD-ROMドライブ追加(メルコ製のサウンドボードに直結のタイプ、2倍速)
オーバードライブプロセッサ(確かIOデータ製)追加して、CPUをPentium 75MHz相当に。
ディスク圧縮ツールを購入し、340MBのハードディスクの容量を540MB相当に。
これだけの改造(とはいわないか…)を施し、やっとウィンドウズ3.1が快適に動作するようになったのだ。しかし何ですな、よくこれだけ発展性のない改造をやったものだと、我ながら思う。CD-ROMは、インターフェイスが専用なので使い回しができないし。
因みに、CRTは、グラフィックアクセレータを追加するまでは、8801の頃から使っていたNECのPC-854Nを使っていた。アクセレータ購入後に、CRTがマルチスキャン対応ではないことに気づき、CRTを買い換える。ソフマップブランドの、Susteenのものでした。安い割には結構画質が良かった。
ウィンドウズ3.1にしてから、インターネット接続も始めた。最初は何がなんだか分からなかったので、接続ソフトは、取り敢えずインターネット・オフィスという、パック品を使用。接続は、スムーズであった。付属のブラウザは、今や懐かしい「モザイク」である。モデムは友人から譲り受けた14,400bpsのものだったが、このころはこれで十分なのであった。
ホームページもこのころから作り始めた。かねてから懸案のFrank Zappaのページ作りを始めるに当たり、ジャケット取り込みのためのスキャナを購入。このころは、真裸婦ラットベッドの製品は非常に高価であったので、ハンディタイプのものを購入。LPジャケットを8回に分けてスキャンし、付属の合成ソフトで合成するという、涙ぐましいものであった。
このPC-486SEでも、ゲームはずいぶんとやった。でも、以前ほどたくさんはやっていないのだな。
上述したELFの「同級生」の続編。こちらの作品は、「兄と妹」という設定で大ヒットしたという記憶がある。前作のシステムやノリをそのまま引き継ぎ、内容をさらに充実させた、名作。
ホムンクルス(妖精)を育てて人間にするという、育てものゲーム。キャラデザが、イラストレーターの中村博文(どじ)氏だということで購入。そこそこやったが、何故か私が育てるとみんな悪魔になってしまい、そのうち断念。
…印象に残っているのは、このくらい。この時期は、ゲームはスパーファミコンを中心にプレイしていたような気がする。パソゲーが少ないのはそのせいかな。
さて、ここでウィンドウズ95の発売となるのだが、EPSONがEPSONパソコン対応のウィンドウズ95の店頭販売を断念し、注文販売だけにしてしまったので、これは先が無いことが判明してしまった。新規にパソコンを買う予算も、早々には調達できない私は、しばし呆然とし、どうしようかと思いあぐねたのだった。
そのとき、天の導きかはたまた悪魔の誘いか、職場の先輩から、1枚のマザーボードが私の下へ転がり込んだのである。この1枚のマザーボードを発端として、今に至るまでの私のパソコン自作時代、パソコン大散財時代へと突入するのであった。
この譲り受けたマザーボードで製作した最初のシステムは、以下の通り。
MB(Mother Board):メーカー不詳、P54C対応マザー
SB(Sound Board):Sound Blaster互換のバルク品
Graphic Card:Canorpus PW-3DV
以下は、PC-486SEのころのものを継続して使用している。というか、このころは、PC-486SEも併用して使っていた。
Modem:Microcore 28.2kbps
CRT:Susteen 15inch
とにかく安く上げようとして組んだ結果がこれである。ま、最初にしては上出来だったのかもしれない。
で、そろそろこのシステムでは物足りなくなり、もう少し上のシステムに組み替えようと思い立ったわけである。
さらに、ホームページ作りに役立てようと、スキャナを購入したのも、このころかな。
CPU:Cyrix PR166+ (Clock=133MHz)
SB(Sound Board):Sound Blaster互換のバルク品
Graphic Card:Canorpus PW-3DV /VRAMを4MBに増設、ビデオキャプチャ機能を増設
Modem:Microcore 28.2kbps
CRT:Susteen 15inch
MBにGIGA-BYTEを選んだのは、メーカー名が気に入ったのと、当時大攻勢だったASUSのものは使わないというコンセプト(?)からである。それと、SIMMのスロットが6本あるというのも、魅力であった。結局、SIMMは4本しか使わなかったが。これは、RAMをマッピングするTAG RAMの増設を億劫がったためである。TAG RAMを増設しないと、64MB以上のメモリ空間に対してアクセスが遅くなり、全体的にパフォーマンスが悪くなるらしいのだ。
さらに、このシステムに対して、CD-Rドライブを増設。ヤマハのCDR-400t-VKである。I/Fは、SCSIである。このころから、音楽製作関連にも大散財時代が訪れたのであった。
CD-Rを使って、現在も続いているPSY-DOLLというバンドのCDを焼きまくったのであった。当時は、CD-Rの原盤の質もそれほど良くはなく、結構エラーが発生して板を無駄にすることが多かった。
この後、システムは急速に変遷を続け、私は、大散財を続けるのであった。
RAM:DIMM PC-100/CL2 192MB(64MB+128MB)
Audio Card:emagic Audiowerk8
Graphic Card:Creative Labs Graphics BLASTER/RIVA TN
DISPLAY:MITSUBISHI RDT141X(LCD)
フォルダを漁っていたら、1999年5月に書かれた、自分のPC履歴が発掘されたので、貼り付けてみる。
なんだかんだ言って、私がパソコンを使うようになってから、10年近く経ってしまったのである。プログラムを組んで実行できる最初のマシンは、高校のときに購入したCASIOのプログラム電卓FX-502Pであるが、これはあくまで電卓であり、パソコンとは多少趣を異にするものであった。
パソコンとして最初に購入したのは、NECの8ビットマシンPC-8801MA2であり、完全なるゲームマシンであった。以下、16ビット時代に突入してEPSON PC-286VE、32ビットマシンのEPSON PC-486SEと続き、とうとう自作DOS/Vマシンをメインのマシンにするようになってしまうのであった。
これから、私のこのしょ~もない足跡を辿ってみたいと思う。PC-8801MA2~PC-486SEの項には、そのときハマったゲームの感想なども記してある。暇な方はこちらもどうぞ!?
小さい頃から、電気・電子関係が好きで、親にマイキット(パネル上にトランジスタとか抵抗、コンデンサなどが並べられており、スプリングになった端子にコードを挟んでそれらを繋いで回路を作る)や電子ブロック(透明なブロックにトランジスタや抵抗などが入っており、ブロックをボード上に配置して回路を作る)などを買ってもらい、それでラジオなどを作って遊んでいたのである。マイキットでラジオを作り、夜中にこっそりと深夜放送を聞いていました。(^^;
因みに、私がアマチュア無線の免許を取得したのは、小学生のときである。これは、ちょっと自慢してもいいと思う。
当時、「初歩のラジオ」とか「ラジオの製作」、「電波科学」などの雑誌をよく読んでいたのだが、流石に、中学生の私にはディジタル回路は難しく(というよりも、何をするためのものなのか、イマイチ理解できなかった)、ボードマイコンTK-80などに手を出すには至らなかった。
まぁ、何しろ当時は、マイコンといっても論理回路の動作から入る必要があったので、当然といえば当然であろう。
そして、関数電卓などをいじくり、「このキーとこのキーを同時に押すと変な表示になる!?」などと遊んでいた私が、最初に手にしたコンピュータらしきものは、カシオのプログラム電卓「FX-502P」である。
これは、512ステップまでのプログラムが組めるというもので、ちゃんと「GOTO」キーや「GOSUB」キー、「LABEL」キー、条件判定を設定するキーなどが用意されていて、結構本格的なものでした。レジスタも10個使えた。ランダムに数値を出力するキーも付いていたな。
プログラムライブラリ(本ですが)なども付いてきていて、掲載されている通りに打ち込むと、科学計算をやったりゲームなどを楽しむことができた。もちろん、プログラムを外部に記録しておくこともできたのだ。オプションが必要だが(買った)、普通のラジカセなどを使ってカセットテープにプログラムを記録するのである。
あと、FX-502Pでは、キーに4分音符や16分音符などが割り当てられていて、短音だが楽曲を打ち込むこともできた。上述のオプションを利用して、ラジカセなどで鳴らすのである。
学生時代は、ビンボーだったせいもあって、パソコンには縁がなかった。友人宅でシャープのTurboIIIなどでゲームをさせてもらうのが関の山なのであった。
で、就職して最初に購入したパソコンが、NECの8ビットパソコンの最終形態ともいうべきPC-8801MA2である。
当時は、既に16ビットパソコンのPC-9801Vm2なども発売されていたのだが、私の選択したのは8ビットマシンの「ハチハチ」なのであった。何故か?
それは、パソコンでゲームがしたかったからである。当時は、違法行為に限りなく近いレンタルソフト屋が横行していて、ゲームソフトなどが比較的安い価格で入手できた(ソフト毎のパラメータファイルでコピーを行うFile Masterは必需品)。また、ゲーム市場も8801主体であって、9801用のものはごく少なかったのである。
とにかく、とても全部やりきれないくらい、ゲームを借りまくった。
何を隠そう、私が8801を購入して、最初に買ったゲームがこれである。何で、最初からこんなに難易度の高いゲームを、と疑問を持つ向きもあろうが、要するに、当時はパソゲーなるものが全く分かっていなかったのである。しかも、あろうことか、購入時には、アクションRPGの先駆け的存在である「ソーサリアン」とこの「マイト・アンド・マジック」を天秤に掛けていたのである。
世間では、「クソゲー」との評価が一般的であるが、私は、このゲームは名作であると信じている。とにかく、世界が存在していて、プレイヤーはその世界に住むところから始まるのである。ストーリーは、最初は与えられず、発見したものだけがストーリーに参加できる。しかし、ストーリーに参加しなくても、とにかく世界が広大・深淵なので、アイテム探しやダンジョン探検だけでも、十分堪能できる。私は、後述する16ビットパソコンの時代まで、約3年以上もこのゲームにお世話になったのである。
「ドラクエ」シリーズで有名なエニックスのアドベンチャーゲーム(AVG)。
不気味な感じが大変心地よい秀作。本作では謎を残したまま終結し、後に「アンジェラス2」が発売されるが、時期を完全にはずしていたし、余り面白くなさそうだったので私はやっていない。
今はHゲーのメーカーになってしまった、しゃんばらのRPG。私の大好き(だった)漫画家、松田紘佳がキャラデザ他を手がけている。音楽もこの人だったな。もしかすると、「2」は後述のPC-286VEでプレイしたのかもしれない。海が舞台の、異色のRPG。とにかく海なので、3次元的に自在に移動できるのがミソ。階段を使って他の階へ移動する一般的なダンジョンとはひと味違うのである。
ただ、惜しむらくは、これは私がコピー品でプレイしていたから良くないのであろうが、2作ともエンディングを見れなかったことだ。
1作目では、「ピー」とビープ音がしてゲームがハングアップ。2作目では、たぶん最終場面であろう画面から1歩も進めず、アウト。
今あったら、正式に購入して再度挑戦してみたいゲームではある。
かのアスキーが発売していた、Hゲー。ダンジョンを歩き回るRPGである。
このゲームは、とにかくノリが非常によく、テンポが軽快で楽しいゲームであった。ゲーム自体は、6階+αの「ウロボロスの塔」を探検して、秘密を探るというもので、出てくるモンスターが女の子で、ダメージを与える度に女の子が1枚ずつ服を脱いでいくという、他愛もないものである。
このゲームをして最初に驚かされたのは、グラフィックの描画の早さである。何だかんだ言っても、8ビットパソコンであるので、当時のゲーム、特に、グラフィックを強調したゲームでは、描画に恐ろしく時間がかかった。一枚の画像を出すのに数秒、ひどいものでは、数十秒、なんていうのもあった。
そんな中で、この「カオス・エンジェルス」は、とにかく、一瞬で画像が描き換わった。これは、当時ではとても新鮮なことであった。
また、そのBGMもとても斬新で、簡単なFM音源を使いながら、とてもハイセンスな雰囲気を醸し出していたのだ。音楽の秀逸さでは、水龍士といい勝負かもしれない。
しかし、このゲームの最大のポイントは、「洒落っけ」にあると思う。ダンジョンの壁に、前に探検した人の落書きがあって、これがまた奥が深く面白い。この落書きがゲームのヒントにもなっているのだが、関係のない落書きもあって、これを探すだけでも、結構楽しめた。
当時、特にスタジオピエロ系のキャラクターもののゲームを数多く出していた、マイクロキャビンのAVG。マイクロキャビンでは、この後も、「めぞん一刻」や「気まぐれオレンジロード」などのキャラ系ゲームを続々と発売していた。
このゲームは、少年サンデーに連載されて、アニメ化もされ一世を風靡した、高橋留美子の同名の漫画「うる星やつら」をゲーム化したものである。
ゲーム内容は、確か、面堂家の誰か(終太郎か、了子か、どっちか忘れた、たぶん了子だ)の誕生日に招待されたお馴染みのメンバーが「迷路」を探索しながらゴールにたどり着くというものである。何かのイベントを経る毎に、時間が経過していき、それにより結果が変化するというのと、途中の行動で結果が変化するということで、数種類のエンディングが用意されていたように思う。
マルチエンディングや時間の概念は今でこそ珍しくもないが、当時では結構画期的なことであったのだ。
フェアリーテール(ELF)の伝説的名作AVGである。確か「2」もあった。フェアリーテール(ELF)のAVGは、何かこう、独特の雰囲気があって、それが私は非常に気に入っていた。なんていうか、どことなく寂しげな感触というか、ちょっと空虚な感じとでもいおうか。キャラクターや展開、秀逸なBGMなどが、この雰囲気を醸し出しているのだ。
フェアリーテール(ELF)のAVGは、この他にも相当やった。「ELLE」なんかは、最後のどんでん返しが強烈でした。
そのほかにも、いろいろゲームはやったが、とんでもねーゲームを一つだけ…
これは、要するに当時大流行の「北斗の拳」のパロディーHゲーである。
ゲーム内容がくだらないのもさることながら(あまりにくだらなすぎて、ケンシロウのようなキャラが出てくること以外、忘れた)、その作りがとにかく凄い。
これは想像だが、このゲームは、おそらくN88-BASICで組まれている。なぜなら、まず、ストップキーでゲームが止まってしまう。そして、そのとき、画面の左上隅に「>C^」が出る(分かる人には分かるね!?)。
そして、NECの8801,9801シリーズのパソコンには必ず付いていた、画面のハードコピーを取るキー「COPY」を押すと、押したときに表示されている画面をプリンタに印刷することができる。
なんか、「流行だから適当に作って一発当てよう」という意図の見え見えなゲームでありました。
…そうこうしているうちに、8ビットパソコンは衰退し、ゲームソフトも発売されなくなって、世の中は16ビットパソコンの時代へと、大幅に突入したのだった。
そこで購入したのが、NECではなくて、EPSONのパソコンなのである。ここいらへんに、私の偏屈さがにじみ出ていますね~。(^^;
パソコンに金をかけだしたのも、このころからである。…まぁ、8801じゃあ、金をかけようにもかけるところがないですが。(^^)
今ではもう信じられないが、当時は、1MB/1万円がメモリの相場であった。しかも、メモリをパソコンに組み込むには面倒な設定がいくつも必要で、さらに、汎用のスロットを一つ占有してしまうのだった。また、今でこそ、SIMMとかDIMMとかいって、大容量がコンパクトに収納されているが、当時は、たとえ1MBでも、12cm角くらいの基板にチップがびっしり載っていたのだった。
それでも、1MBあると無いとでは、雲泥の差があった。
これも、今ではもう信じられないが、当時は、例えば40MBで8万円位した。しかも専用のインターフェイスが要る。これでまたスロットが一つ埋まったのであった。
でも、当時のソフトは、40MBでもお釣りが来るくらいの容量だったんだよね~。
あと、このマシンから、パソコン通信を始めた。当然NIFTY Serveから。
当時は、WTERMを使い、通信速度も2400bpsであった。50kBの画像をダウンロードするのに何分もかかり、さらにその画像を表示するのに何分もかかった。大変な時代であった。
このPC-286VEは、後に友人の手に渡り、そこでVRAM異常が発生してお亡くなりになってしまいましたとさ。合掌。
このマシンでも、ゲームはずいぶんとやった。中で、印象深いものをいくつか紹介しようと思う。
上述したものと同じである。当然、続きではなくて、新規に始めた。やはり8ビットのものと比べて速い。何しろ、8ビット版は2DDのディスク4枚組で、地上、ダンジョン、城、と場所を変える度にディスクの入れ替えが必要だった上、そのたび毎に、システムディスクに書き込み(1分くらいかかった、マジで…)をしていたのだ。それがなくなっただけでも、快適である。ただ、8ビット版の頃はあったBGMがなくなってしまったのは、ちょっと寂しかったが。
なかなかハマった。各エンディングも味わい深いもので、30数種類あるといわれているエンディングを20数種類まで見て、飽きてやめた。プリンセスと謎のエンディングは見ていない。けど、いいや。
「1」と「2」は、3Dダンジョンもの。当時は3Dダンジョンでさえ珍しかったのに、Hゲーで3Dダンジョンというのは、相当なインパクトがあった。ゲーム的にもよく練れており、ダンジョンの仕掛けも良くできていた。Hゲーという観点を排除して、単にゲームとしてみた場合に、非常に完成度の高いゲームであった。
「3」は、確かドラクエタイプの2DのRPG。「4」は、ダンジョンに戻ったのだっけかな?この辺はあんまり印象にないのだな。「5」は、私の大嫌いなシミュレーションで、遂にエンディングを見ることができなかった。…と言うよりは、途中でつまんなくって止めた。「4」と「5」は、多分、後述のPC-486SEでやっている。
これは、今更説明するまでもない、ELFが世に放つ名作中の名作。このゲームが今までのゲームの流れを一気に変えたといってもいいでしょう。味のあるキャラクタ(しかも大勢!)に、深みのあるストーリー。それぞれが練りに練られたマルチエンディング。とってもシビアな時間の概念。所持金の存在も内容に深みを与えています。
さらに、複雑なフラグ制御がすばらしい。よくあれだけの条件設定をして、ゲームが破綻しないものだ。
そして、何より高校生最後の夏休みという、絶妙のセッティング。
とにかく、この「同級生」は、何遍やっても違った展開になるし、違った楽しみ方ができるゲームという、画期的なゲームでした。
後に「2」も出て、共通するキャラクタも出演している。私は、「2」は後述する32ビット版でやったのだけれど、その面白さは全く失われてはいませんでした。恐るべし、ELF。
そのうち、世の中はウィンドウズ時代に突入し、パソコンも16ビットパソコンから32ビットパソコンへと移行していったのである。…といっても、ウィンドウズ3.1は、とっくに発売されていたが、ゲームの世界が未だにDOSベースだったので、それまでは何とかなっていたのであった。が、こう周りがウィンドウズだらけになってくると、流石に不安になって、DOSからの移行を考えざるを得なくなってしまったのであった。
上述のPC-286VEでも、ウィンドウズを試してみたことがあった。そのころは、ウィンドウズは3.0で、フロッピー5枚組という、今から考えればささやかな構成であった。当時は、ウィンドウズ3.0対応のソフトもほとんどなく、これは試してみるだけで終わったが。
実は、32ビットパソコンへの移行の際に、一つの考えがあったのである。つまり、Macへの移行である。当時、Macの世界も変革の時期を迎えていたらしく、小さい筐体が却って可愛らしい Permalink | 記事への反応(1) | 12:53
utf8の文字コードで構成されたバイナリーファイルがある。このファイルの改行の数を数えよ。改行はCRのみとする。このファイルにはCR が必ず含まれており、CRで分割すればマルチスレッドで処理できる。
size_t count_cr_in_file(const std::string& path) {
std::ifstream fs(path, std::ios::binary);
size_t size = fs.tellg();
fs.seekg(0);
const size_t thread_count = std::thread::hardware_concurrency();
const size_t chunk_size = size / thread_count;
std::vector<std::future<size_t>> futures;
for (size_t t = 0; t < thread_count; t++) {
size_t start = t * chunk_size;
size_t end = (t == thread_count - 1 ? size : (t + 1) * chunk_size);
futures.push_back(std::async(std::launch::async, [start, end, &path]() {
std::ifstream fs(path, std::ios::binary);
fs.seekg(start);
size_t count = 0;
for (size_t i = start; i < end; i++) {
char c;
if (c == '\r') count++;
}
return count;
}));
}
size_t total = 0;
for (auto& f : futures) total += f.get();
return total;
}
import mmap
mm = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
return mm.count(b'\r')
c#で書けと指示したところ、
using System;
using System.IO;
using System.IO.MemoryMappedFiles;
{
public static long CountCRInFile(string path)
{
using var mmf = MemoryMappedFile.CreateFromFile(path, FileMode.Open, null);
using var accessor = mmf.CreateViewAccessor(0, 0, MemoryMappedFileAccess.Read);
long fileSize = accessor.Capacity;
int processorCount = Environment.ProcessorCount;
long chunkSize = fileSize / processorCount;
long total = 0;
object lockObj = new object();
Parallel.For(0, processorCount, i =>
{
long start = i * chunkSize;
long end = (i == processorCount - 1) ? fileSize : (i + 1) * chunkSize;
long localCount = 0;
byte b;
for (long pos = start; pos < end; pos++)
{
if (b == 0x0D) // CR
localCount++;
}
lock (lockObj)
{
total += localCount;
}
});
return total;
}
static void Main(string[] args)
{
long count = CountCRInFile(path);
Console.WriteLine($"CR count = {count}");
}
}
というコードが出てきた。
実際はcrlf,lfもあり得るんだが、そこは考慮しなくてもよく、そう考えるとaiはすごいとしか言いようがない。
https://lscharlie.exblog.jp/31824635/
「結果はFSIQ 156(標準偏差15)。読むのが面倒くさい人向けに予め(笑)。
2015年に人生初の知能検査WAIS-III(Ver.3)を受けた。今回は2018年から日本でも運用開始となった新しいバージョンWAIS-IV(Ver.4)の性能(?)を確認したく受けてみた。
※ちなみに本家アメリカでは児童向けのWISC-V(Ver.5)が出ているらしい。ということは成人向けのWAIS-Vもアメリカではそろそろだろう。周回遅れの日本。
※読み方はウェイス・フォー。
グーグル検索でサクッと出てきたところは私には遠く(4km以上(笑))、近場の心療内科や公認心理師(臨床心理士)オフィスなど10軒ほど問い合わせ、WAIS-IVを実施しているところを探した。「WAIS-IIIでしたら」と言うところばかりで、最新版の導入があまり進んでない様子。
前回同様、心身共に健康な私は問い合わせの段階で予め「自費(自由診療)で」と申し出た。
/*
「WAIS-IV」と検索すると真っ先に飛び込んでくる文字が「医科診療報酬点数: 450点 (根拠 D283-3)」で、仮に健康保険適用だと医院に入るのは4,500円であり、2時間ほど趣味に付き合わせるわけにはいかず自費(自由診療)で。場所代もあり医院と折半だとして、病院勤務の公認心理師の時給は1,000円くらいか。歯医者と一緒で保険適用診療は儲からないようにできている。余計なお世話だが。
今回は他の心理検査は省略してWAIS-IVのみ。心理検査(エゴグラムなど)4〜5種込みで36,000円(自由診療)ほどだった2015年とそれほど変わらず、問い合わせたところはWAIS-IV単体検査で27,500円〜43,000円(税込)だった。検査報告書は別途5,000円前後取るところが多くソレを含んだ金額(いずれも自由診療の場合)。
※神奈川県で1万円台後半、首都圏の外では1万円台前半という医院・心理オフィスも見かけた。
2015年と同じく、問い合わせ段階で「1ヶ月以上お待ちいただく場合があります」というところもあったが、今回も申込から一週間以内で受けられた。精神科医に用がナイと早いのだろう。
検査は臨床心理士(民間資格)かつ公認心理師(国家資格)の女性と個室で約1時間半。休憩なし(こちらが希望しなかった)。
結果は全IQ(FSIQ)156(95%信頼区間で149〜159)。
WAIS-IIIでは156までらしいが、WAIS-IVは160まで測定できるそう。実社会における知能格差を踏まえてのことだろうか。IQブームで被験者が増え十分なサンプルが得られたのかもしれない。
フリン効果を考慮すると、全体(世間)が底上げされることで相対的に自分の優位性が下がり、最新バージョンでは低く出ると予想されるがそうはならなかった。考えられるのは下記の通り。
(1)5年前のWAIS-IIIの時は時間を測っていることを途中まで知らず臨床心理士の女性を笑わせることに専念していた(笑)ため、(WAIS-IIIの)スコアが低く出た。
(2)各検査の内容は一通り入れ替わったそうだが、前回検査イメージ(流れ)を知ったため精神的な余裕が生まれ集中できた。
(3)私が時代に適した(または進んだ)頭を持っていて、バージョンが新しくなったことでより高い精度で測定できた。
(4)同年代と比べて経年劣化(笑)が遅いため、偏差値(DIQ)化すると優位性が増した。
(1)は十分にあり得る。当時ブログネタのために(笑)メンサの試験と併せて思いつきで受けに行ったから、時間を測定するなどの知識が何もなく、ずっと冗談を言い続けていて、臨床心理士の女性が噴き出してペンを落としたくらい(笑)。それを拾おうとした時に「時間を測っているので」と言われて知った。だから前半の検査項目の値が低く出た可能性が十二分にある。今回は検査中は黙って集中した。
(2)は初回と比べると遙かに緊張も少ない。医院だと問い合わせただけでも「WAISを受ける(受けさせられる?)=何か問題がある」という前提なんだろうなという空気感が漂い、健常者にとってはアウェー感がかなりある。見方を変えると通院している人は場慣れしていて“ホーム”として挑めるんじゃないだろうか。また「流れ」を知っているか否かは大きい。ボクシングなら蹴ってこない前提で戦えるし、キックボクシングなら寝技はない前提で戦えるが、「ルールなし」だとどう構えていいのワカラナイのと同じで、イメージを掴んでいるだけでも有利に働く。疲れがまるで違う。
(3)かれこれ20年ちょっとプログラマーをやっていて、25年もITビジネスに携わっているから、頭の使い方は他の現代人と比べてもそれなりに進んでいるだろう。検査内容が時代に追いついてきた可能性がある。だとすれば次バージョンではもっと高く出るかもと期待できる。
(4)同年代偏差値から算出されるため、他の人達より老化(機能低下)が遅ければそれだけ高く出る。しかし「2015年にWAIS-IIIを受けました」と伝えたところ、標準化する際の年代(すなわちサンプル集団)が当時と同じ層に収まっているらしく、一般的には加齢に伴う認知機能の低下によって、今回の方が低く出るはずだから1〜3の可能性が高い。
検査が終わった直後「多分151以上でしょう。正式な結果とレポートは1週間ほどで」と言われ解散。レポートを受け取り記載されている用語(資料1、資料2[WISC-IV]、資料3[WISC-IV]、資料4[WISC-IV]、資料5[WISC-IV]を参照)を調べてまとめたのが下記。数値は私の結果。
類似:15
単語:18
知識:19
理解*:19
積木模様:18
パズル:18
バランス*:18
絵の完成*:18
数唱:19
語音整列*:19
▼処理速度(PSI):149
記号探し:18
符号:19
絵の抹消*:17
「*」印5項目(語音整列、バランス、理解、絵の末梢、絵の完成)は「補助検査」と呼ばれ、これは直接は知能指数の算出には使われないらしい。せっかくなので全部受けた。
※料金が異なるかもしれないので、15検査受けたい人は予め「全15検査を」と伝えた方がイイ。
「類似」だけ低いのは多分私がスロースターターだから(笑)。最初の検査項目で、自分で「もうちょっとスマートな表現がありそうだが」と思いながら答えていた。最近は書いて説明することが多いことも影響している(多分)。
WAIS-IVから「言語性知能(VIQ)と動作性知能(PIQ)の区分けがなくなる」とはどこかで読んで知っていたが、
[VCI(言語理解)]+[WMI(作動記憶)]=[VIQ(言語性知能)](聴覚入力)
[PRI(知覚統合)]+[PSI(処理速度)]=[PIQ(動作性知能)](視覚入力)
※上記()内がWAIS-IIIでの呼称。今思うと「知覚統合」は大袈裟で、視覚入力しか測定していない。IVでは「知覚推理」という名称になった。割と良く「空間認識」とか「地図を読む力」といった例えが出てくるのに、なぜ素直に「視覚推理」にしないのか。
しかし分析の際の仕分けが変わったようで、これまでは上記の言語性知能/動作性知能に分けて分析していたところを、
[VCI(言語理解)]+[PRI(知覚推理)]=[GAI(一般知的能力指標)]
[WMI(作動記憶)]+[PSI(処理速度)]=[CPI(認知熟達度指標)]
と見るようだ。
※CPI(認知熟達度指標)は、「成人検査では現時点で研究段階」とのことで数値は算出されないそう。WISC-IVにはあるらしい。
検査方式が大きく変わったわけでもなく分析方法がより詳細になったっぽい。
分析の仕方が変わろうと、私みたいにバラツキのないタイプは分析しようがない。検査項目毎に差があって初めて何に強い・弱いなどの適性が出たり、或いは「発達障害の疑いあり」等と判定されるのだから。
GAI(一般知的能力指標)は知識と思考力(もちろん机上の)、CPI(認知熟達度指標)は実生活で問われる能力と言える。実績(実務)よりカタログスペックにこだわる人はGAIを好みそうな印象があり、「GAIが高いのに実社会で上手く行かない」という場合にCPIを見れば原因が解るといったより実質的な評価が可能になったように思える。
PRIとPSIはCambridge Brain Sciencesのスコア通りな印象。内容は全然違うが、テキパキ度が問われる。サラリーマン社会では最も見た目の印象に関わるところ。時間を測っているものばかりなので、喋ったり冗談を言ったり手を休めていると当然に低く出る。
一方、VCIは知識問題なので、偶然知っている内容が出題されれば高く出るという他の資格試験などと似た性質のもの。WAIS-IIIの時は日本文化に関わる内容が多く出題された記憶がある(私の苦手分野)が、IVは私が良く知る内容ばかりだった。
細かく見ていくと、「類似」は読解力・理解力につながり、「理解」は言葉通りの検査で異議はないが、「単語」と「知識」は“教養”と言えば教養、しかし私はこれらを「知能検査」に含めることに懐疑的な立場であり「長期記憶を問うている」程度に受け止めている。全くもって生得的な知能とは関係ない気がする。それに2020年現在、もっと知ってた方がいい知識は山ほどある。例えば「bit」と「byte」は現代社会において極めて優先度の高い単位だが、他の単位が問われた。冒頭に書いた周回遅れが原因なら(日米差は10年)、2010年頃の偏差値として受け止めるべきか。
WMI(いわゆるワーキングメモリー)は算数と暗唱(数唱)で、私の場合数唱はもともと良いんだが算数は運(笑)。今回の内容自体は即答できる簡単なものだった。
※それでもWAIS-IIIから5年経って加齢に反して向上していることを考えると、サプリ効果ではないかと個人的に思っている。
結局のところ言語性知能とは結晶性知能と呼ばれることもあるように、努力(反復学習)の成果(特に学校時代の)であり(私の場合大人になってから覚えたものばかりだが(笑))、生得的な賢さとは結びつかない。私はまるで努力型ではないので、算数(暗算)などは平均的なビジネスマンと比べて決して速くないんだが、ウェクスラーの場合文章問題を耳で聞いて暗算で答えるので、日頃人の話を何度も聞き直すような人(聴覚入力の機能性が低い人)や、メモが必要な人(ワーキングメモリーの機能性が低い人)は、学校のテストのように紙に書かれた問題の暗算が得意でも上手く行かない可能性があり、相対的に私はよく機能しているという結果なのだろうと理解している。日常生活・業務により近い検査と言える。
※ちなみに遺伝子検査では私の海馬(=記憶力を司る)は小さい傾向と出ている。MRIの画像が3年分あるのでいつか脳科学者に見てもらいたい。一方、計算は速い傾向と出ているが、算数も数学も苦手。多分性格の問題(笑)。処理速度も一部速い傾向と出ていて、これは自分で納得している。スロースターターだが(これも性格の問題)エンジンがかかると処理はかなり速い方で仕事量は非常に多い。
私にとって最も集中力を必要としたのは語音整列でかなり脳に負荷がかかった。10年に1回というくらいの本気を出してみたが、補助検査なのでFSIQの算出には使われないらしい(笑)。
私が受けたところは、検査まで、検査時、検査後の対応も非常に良かった。自費(先方にとって実入りが良い)かつ何かの疑いがあるわけではないので、そもそも“患者”ではなくただの“客”だからというのもあるだろう。
以下はいくつか感じた点をまとめてみた。
その1:ウェクスラー知能検査は常識的なことしか問われないので、小さい頃から発達障害等の疑いで何度も知能検査を受けている人や、ギフテッド・英才教育という名の下に検査に最適化された問題をこなしかつ検査を頻繁に受けている人などは内容を覚えてしまうから、各バージョン最初の1回目のスコアしかあてにならない。特にWAIS-IIIで言う言語性知能(WAIS-IVでは言語理解)の下位検査は記憶力の良い人なら1回で暗記できるものなので、インターネット上で「言語性知能が高く動作性知能が低い」(その差が大きい)という結果をよく見かけるのも、これが原因の1つかもしれない。診断のためだとしても複数回検査しているうちに、暗記によって言語性下位検査のスコアが高くなり、“慣れ”効果は多少あっても暗記できるものではない動作性との差が開き、ますます発達障害判定される可能性が高まるんじゃないかと人ごとながら感じた。
その2:行列推理の問題のうち1問だけ、間違いなくこれが正答と思われる選択肢に色違いがあり、色覚異常の私には識別が難しかった。どうみても答えではない選択肢が何色だろうと構わないが、正答に色違いを設ける場合は赤、青、黄、黒といった間違えようのない色にしてもらいたい。色覚異常が多い白人圏で製作されている割には意外。
その3:凸凹がないのでプロファイリングしようがないのかもしれない。検査報告書は2015年のWAIS-IIIの時と同じく、読んでる方が顔が赤くなる(笑)くらい褒めちぎられていた(とても丁寧でA4数ページ)。しかしこういう横一直線のバランス型は本当に珍しいらしく、一見「特徴がない」印象だが、見方を変えると出現率的には非常に個性的ということになる。矛盾しているようだが統計学的にはそうなる。
そんな感じ。
普段全く不安要素や問題を感じていなくても、経営者や管理職層は一度受けてみることをオススメする。人を雇うまたは採用・管理する際、自分と比べてどういうタイプの人を“優秀”と感じているか(その反対も)を知ることで、自分は“人材”によって何を補おうとしているのか(または相手に何を要求しているのか)が解るから。自己分析。
病院ではいちばん面白くないかもしれない凸凹がない人は、多分器用なバランス型を好むだろうと思う。欠けているものを補おうとするよりも、バランスを崩すことで生じる補填コストがリスクとなるから。
といった特性が見えてくる。
というわけで次に私が受けるのは、日本でWAIS-Vの運用が始まった時。7-10年後くらいだろうか。
サブ回線で使っている楽天モバイル「最強プラン」の料金プラン(税抜き)は
3GBまで980円
20GBまで1,980円
20GB超えると2,980円
なんだが、
先月の料金明細見たら、3.01GBで1,980円だった。
3.01は明細書に表示させるために繰り上げられた数値で、
たったの0.001GBオーバーで差額の1,000円を請求されてしまった。
(正確な超過byte数は1,348,311で、1.31MB)
データ通信量をリアルタイムで確認できる my楽天モバイル というアプリで
6月30日の夜に「3.00GB」となっていたので「今月も980円で収まった!」と安心して打ち止めにしていたらこの仕打ち。
バラツキはあるだろうが、エントリ1件当たりの平均文字数を300文字(900byte)、1日当たりの平均エントリ数を10,000件と仮定すると
900(byte) × 10,000(件/日) × 365(日) = 3,285,000,000(byte/年)
となり、およそ3GB/年のデータ増加量になる。
年間3GB程度のデータ増加であればインフラ維持に大して頭使わなくて良いし、機能改善もほとんどないので作りっぱなしで勝手に金を生んでくれるし、サーバ維持費用>広告収入にならない限り最低限のメンテナンスで細々と生き続けるのでは?
定期的にOSやミドルウェアのバージョンアップ&移行作業があるだろうけど、若手社員の研修だと思えば別にそんなデメリットでもないだろうし。
名著「UNIXという考え方 - UNIX哲学」は本当に名著なのか? 〜 著者のガンカーズは何者なのかとことん調べてみた - Qiita
この記事はよく調べてあるなぁと思う反面,事実関係の間違いも多く当時の空気感など欠けていると思う部分がいくつかある。事実関係に関しては追い切れないので参考文献を挙げるにとどめておくが,空気感のほうはいくつか書いておく。なお当該記事の「当時と今では状況が全然違うんだから,安易に『UNIX 哲学』とかいうな」という主旨には大賛成である。
初期の UNIX の歴史について興味がある向きには次の書籍をお薦めする。
Peter H. Salus『A Quarter Century of UNIX』(1994, Addison-Wesley Publishing)
和訳の『UNIXの1/4世紀』(Peter H. Salus, QUIPU LLC 訳, 2000, アスキー) は絶版のうえ訳も微妙なので薦めづらいが,原書は The Unix Heritage Society (tuhs) で PDF が無償公開されているので,英語が苦にならないのなら読んでみるといい。
また同じく tuhs で無償公開されている Don Libes and Sandy Ressler『Life with UNIX』(1989, Prentice Hall)を読めば80年代終りの UNIX の状況(XENIX についてもしっかり言及されている)や利用者目線での雰囲気もある程度判るだろう。
元記事で一番気になるのが「哲学」という語の捉え方。この言葉の強さに引きずられているように読める。でもこれ,当時は設計の基本的な考え方くらいの意味でわりとよく使われていた言葉なんだよね。たとえば米 BYTE 誌のアーカイブを “philosophy” で全文検索するとこんな感じ。
https://archive.org/details/byte-magazine?query=philosophy&sin=TXT&sort=date
ほぼ毎号のように出現していたのが判るだろう。
もっとも猫も杓子も「哲学」を振りかざしていたわけではないし,UNIX の開発者たちが「哲学」の語を好んで使っていたのも間違いないように思う。傍証の一つが AT&T の定期刊行物『The Bell System Technical Journal』の1978年7, 8月号だ。元記事で言及されているマキルロイの Forword の初出がこれで,ネットのアーカイブから PDF が入手できる。
この号は二部構成になっていて第一部が Atlanta Fiber System に関する論文12本(全172ページ),第二部が UNIX に関する(Preface や Foreword を含む)論文22本(全416ページ)となっている。さて前述の PDF は OCR されているので “philosophy” で全文検索してみると8箇所見つかる。これが見事に全部 UNIX の論文なのだ。もちろん論文の性質もページ数も違うからこれだけで確定的なことはいえないが「日常的に使っていたんだろうなぁ」という推測は成り立つだろう。じつはマキルロイの哲学とされている部分は “Style” であり “philosophy” の語は一切使われていないというのもちょっと面白い。UNIX の開発者たちがなぜ「哲学」という語を好んだか正確なところは判らないが,それまでにない新しい考え方に基づいた OS を開発しているという意識があれば,そういう言葉を選ぶのが自然な時代だったことは間違いない。
UNIX が認知され拡がっていく過程で「哲学」も知られるようになっていった。自分が好むものの良さを他人にも識ってもらいたい,あわよくば他人もそれを好むようになって欲しいという布教活動は今も昔を変らないわけで「哲学」はその便利なツールとなったわけだ。元記事ではガンカースの著作を「外部の人間が後から打ち立てた哲学」と表現しているが,そんなたいしたものではない。マキルロイの論文に影響を受けた布教のためのああいう説教は到るところにあった。たとえば前掲の『Life with UNIX』にもしっかり Philosophy の項がある。また日本で最初期の UNIX 解説本のひとつである,村井純・井上尚司・砂原秀樹『プロフェッショナル UNIX』(1986,アスキー)には冒頭次のような一節がある。
オペレーティング・システムは,コンピュータを使うものにとっての環境を形成する基盤であるから,そのうえで生活する者の個性を尊重し,より良い環境へと作り上げて行く課程を支援するような素材を提供するソフトウェアでなければならない。この主張こそが,UNIX のオペレーティング・システムとしての個性ではないだろうか。
「より良い環境へと作り上げて行く課程を支援するような素材を提供するソフトウェア」とはテキストを入出力フォーマットとする単機能のコマンド群のことで,これらをパイプでつなげたりシェルスクリプトでまとめたりすることで「そのうえで生活する者の個性を尊重し」た「より良い環境へと作り上げて行く」ということだ。こういった説教はありふれたものであった。たんにそれを「哲学」の語を用いて書籍にまとめたのが,たまたまガンカースだったというだけのことである。
そしてじつは UNIX の場合,布教活動とはべつに「哲学」を広めなければならない切実な理由があった。これを説明するのは非常に面倒くさい。当時と今ではあまりにも環境が違うのだが,その違いが判らないと切実さが伝わらないからだ。マア頑張ってみよう。
UNIX は PDP というミニコンピュータ(ミニコン)上に開発された。このミニコンを使うためには専用の部屋に行く必要がある。その部屋は,もちろん場所によって違うわけだが,マアおおよそ学校の教室くらいの大きさだ。長机が何列か並んでおり,そのうえにはブラウン管ディスプレイとキーボードを備えた機器が等間隔に置かれている。壁際にはプリンタが何台かあるだろう。通っていた学校にコンピュータ室などと呼ばれる部屋があったならそれを思い浮かべればだいたい合ってる。ただし置かれている機器はコンピュータではなくコンピュータに接続するための端末装置(ターミナル)だ。端末装置のキーボードで打った文字がコンピュータに送られコンピュータが表示した文字がそのディスプレイに表示される。現在 Unix 系 OS で CLI を使うときターミナルとか xterm という名のアプリケーションを用いるがこれらは端末装置のエミュレータで,もともとは実体のある装置だったわけだ。
さてコンピュータ室にたいていは隣接するかたちでマシンルームなどと呼ばれる六畳くらいの部屋がある。窓ガラスで仕切られたこの部屋には箪笥や洗濯機くらいの大きさの装置が何台か置かれている。これがコンピュータ本体だ。もっともコンピュータが何台もあるわけではない。この箪笥が CPU でそっちの洗濯機がハードディスク,あの机に置かれているタイプライタが管理用コンソールといった具合に何台かある装置全部で一台のコンピュータになる。どこが〝ミニ〟だと突っ込みたくなるかもしれないが「六畳で収まるなんて,なんてミニ!」という時代のお話だ。
端末装置それぞれから(USB のご先祖様の)RS-232 という規格のアオダイショウみたいなケーブルが伸び,マシンルームに置かれたターミナルマルチプレクサと呼ばれるスーツケースに台数分のアオダイショウが刺さってコンピュータとの通信を行う。コンピュータと多数の端末装置を含めたこれら全体をサイトと呼び,root 権限を持って管理業務を行う人をシステム管理者あるいはスーパーユーザと呼んだ。
結構上手に説明できたと思うのだが雰囲気は伝わっただろうか。ここで重要なのは一台のコンピュータを数十人が一斉に使っていたという事実だ。洗濯機とかアオダイショウとかは,マアどうでもいい。
当時の UNIX の評価を一言で表すと〝自由で不安定な OS〟となる。メーカお仕着せではなく自分好みの「より良い環境」を作りあげる自由。さらに他のメインフレームやミニコン用 OS に比べると一般ユーザ権限でできることが圧倒的に多かった。そしてその代償が不安定さ。今では考えられないが UNIX のその不安定さゆえにプロ用 OS ではないと考える向きは多かったし「でも UNIX ってすぐ落ちるじゃん」というのは UNIX アンチ定番のディスりだった。UNIX の落とし方,みたいな情報がなんとなく廻ってきたものだ。
こういった雰囲気を鮮やかに伝えてくれるのが,高野豊『root から / へのメッセージ』(1991,アスキー)だ。当時アスキーが発行していた雑誌『UNIX MAGAZINE』に連載されていた氏のエッセイの1986年11月号から1988年10月号掲載分までをまとめた書籍である。著者の高野氏は勤務先の松下電器で1980年ごろから UNIX サイトのスーパーユーザを務めており,日本では最古参の一人である。この本の中で高野氏は繰返し UNIX の自由さと不安定さに言及している。すこし長くなるが,その中の一つを引用しよう。
CPU は,システムにとって重要な共有資源であるが,この CPU を実質的に停めてしまうことが UNIX ではいとも簡単にできる。たとえば,cc コマンドを10個くらい同時に走らせてみたらよい。VAX-11/780 といえども,同時に実行できるコンパイルはせいぜい3つか4つである。それ以上実行することも当然可能ではあるが,他に与える影響が無視できなくなる。つまり,てきめんに vi のカーソルが動かなくなる。あるいは,すこし大きめなディレクトリ上での ls コマンドの出力が表示されるまでに煙草を1本吸い終えてしまったり,タイムアウトでログインが撥ねつけられたりといったバカげた現象が起きだすのである。こういった状態になると,UNIX は破壊されたに等しい。真夜中,独りで VAX を占有して使っているのなら何をやろうとかまわない。しかし,20人30人と多数の人間が使っているときに勝手をやられると非常に困るのである。当人の仕事が遅れるのは自業自得だとしても,そのとばっちりで他のエディタまで止まってしまうと,もはやどの仕事も進行しなくなる。
ディスクについても同様なことがいえる。UNIX では,ファイルシステムを使いはたすまで大きなファイルを自由に作ることができる。したがって,自分のプロセスがいったいどのくらいの容量のファイルを作り出すのか見当もつけられないようなアマチュアが使うと悲惨なことになる。ディスクを使いはたすと,コンソール・タイプライターにエラー・メッセージが出力されるが,夜中にそれが発生して,コンソール・タイプライターが一晩中エラー・メッセージを打ち続け,朝マシンルームに行ってみると紙を一箱打ち尽くしてしまい,ピーピーと悲しげな声を上げて人を呼んでいた光景を私は何度も見てきた。こうなると,それをしでかした本人のプロセスは当然のこととしても,同じディスクで走っている他のプロセスも先に進めなくなってしまう。すこしでも負荷を夜間にまわそうとする善意は逆転してしまい,わずかでも仕事を先に進めようとする意図も完璧に打ち砕かれてしまうのである。
そして,こうした不安定さが「哲学」を必要としたのだ。自分が利用しているサイトに「cc コマンドを10個くらい同時に走らせ」たり「自分のプロセスがいったいどのくらいの容量のファイルを作り出すのか見当もつけられないようなアマチュア」がいるとその累は自分にも及んでしまう。だからサイトの利用者全員に UNIX の設計の基本的な考え方を理解してもらうことが,自分のために必要だった。UNIX の伝道がより苛烈だった理由のひとつがここにあるのだ。
ミニコン上で誕生した UNIX は 4.3BSD(1986)で最高潮を迎える。注意したいのはミニコン時代の UNIX は Research UNIX と CSRG BSD みたいな区別をせずにまとめて UNIX として扱われていたことだ。実際『プロフェッショナル UNIX』も『root から〜』も UNIX と記述されてはいるが実際には BSD を扱っている。べつに当時の人が無知だったわけではない。なにしろ BSD を利用するためにはまず AT&T から UNIX のライセンスを購入し,そのうえでカリフォルニア大学バークレー校(UCB)から BSD を入手しなければならなかったからその関係は当然広く知られていた。ベル研で発明された UNIX を外部の人たちも含めみんなで改良し,それら全体が UNIX であるという考え方が自然だっただけである。『Life with UNIX』のような英語の文献によく登場する “Berkeley UNIX” という言い回しが当時の気分をよく表している。UNIX vs BSD みたいな捉え方は法廷闘争を経た90年代以降の感覚だ。
もっともそういう70年代風味の牧歌的風景はミニコン世界限定の話であった。BSD そのものはミニコン用のものしかなかったが,そのコードを受け継いだ BSD 系 Unix や AT&T が推し進める System V などがワークステーション市場を舞台に80年代中盤から激しく覇権を争うようになる。いわゆる Unix 戦争で,PC 用 Unix であるマイクロソフトの XENIX も当然参戦した。ミニコン世界が牧歌的だったのは,ぶっちゃけていえば先のない技術だったからだ。ただ Unix 戦争はあくまでも標準という聖杯を争う戦いであり,AT&T と BSD 系 Unix の Sun Microsystems が共同で System V Release 4.0 (SVR4) を作りあげたように後の法廷闘争とは趣が違う。
こうしたミニコン UNIX からワークステーション Unix への転変は Unix そのものや文化にも変化をもたらした。まず激しい競争は Unix の高機能化を加速した。商品として判りやすい惹句が「あれもできます,これもできます」なのは誰もが知っている。もちろん安定性を増すために quota のような利用者の自由を制限する機能も含まれていた。またワークステーション Unix は現在の Unix 系 OS と同様同時に一人が使うものであり前述の布教の必要性は大幅に減じた。達人たちのみの楽園から万人に開かれた道具に変ったのだ。こういった変化を体感したければ『root から〜』と水越賢治『スーパーユーザの日々』(1993,オーム社)を読み比べてみるといい。『スーパーユーザの日々』はワークステーション Unix のシステム管理の入門書だ。この本ではたんに知識を羅列するかわりに架空のソフトウェアハウス(開発会社)を舞台に新卒社員が先輩社員からシステム管理を学ぶという体裁をとっており,そのおかげで架空の話とはいえ90年代前半の雰囲気が堪能できる。出版年でいえば『root から〜』と二年しか違わない『スーパーユーザの日々』の落差は “dog year” と称された当時の激烈な変化まで体感できるだろう。
当時はよくいわれたのに今やほとんど聞かれなくなったものがある。マキルロイの論文の結論部分に書かれたそれは,1973年に出版されたイギリスの経済学者エルンスト・シューマッハーの著作の題名で,中学生の英語力があれば十分に理解できる平明な一文だ。
Small is beautiful.
マキルロイは『人月の神話』を引いて一定の留保をつけてはいるものの,これが UNIX 哲学の背骨であることに違いはない。機能をありったけ詰め込もうとして失敗した “kitchen-in-a-sink” な MULTI•cs のアンチテーゼである UNI•x にとって,これ以上のスローガンがあるだろうか?
ひるがえって現在の Unix 系 OS をみれば,ブクブクと肥え太ったシステムコール,全容を俯瞰するだけでも一苦労するライブラリインターフェイス,一生使うことのないオプションスイッチまみれのコマンド群。UNIX が仮想敵とした OS そのものだ。そのことについてとくになにも思わない。ハードウェアは長足の進歩を遂げ,コンピュータの応用範囲は途方もなく拡がった。UNIX が変らなければたんに打ち棄てられ,歴史書を飾る一項目になっただけだ。ただ現在「UNIX 哲学」を語るならそうした背景は理解していなければならないし,どれだけ繊細な注意を払ったところで〝つまみ食い〟になってしまうことは自覚すべきだ。
2015年ごろには既知の現象だったようなので5年近く無駄に過ごしてしまった。
https://ex1.m-yabe.com/archives/1149
どうしても100Mbpsどころでは済まない通信量なのにMRTGが100Mbps少し超えたあたりから上のグラフを書かれた試しがない。
先日、200~220Mbpsでているのを手元の端末で確認しながら5分程度ダウンロードしたのにグラフは90Mbps程度。
ルーターの生の数字が10分以上、800Mbps超えてたのにグラフは115Mbpsあたりでストップ。
bitとbyte間違えてるんでは?などとといろいろ調べたところ、SEさんが上記のトラップを発見された。
接続が100とか10Mbpsだった時代の仕組みをそのまま使ってきたのがまずかったんだよなぁ。
とにかくこれで、ようやく正しい測定結果をとることができそうだ。
「ただより怖いものはない」
ので、unixbenchの結果を貼っておく。
========================================================================
BYTE UNIX Benchmarks (Version 5.1.3)
System: thinkpad-x260: GNU/Linux
OS: GNU/Linux -- 5.4.0-45-generic -- #49-Ubuntu SMP Wed Aug 26 13:38:52 UTC 2020
Machine: x86_64 (x86_64)
Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
CPU 0: Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz (4999.9 bogomips)
Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
CPU 1: Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz (4999.9 bogomips)
Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
CPU 2: Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz (4999.9 bogomips)
Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
CPU 3: Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz (4999.9 bogomips)
Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
21:26:57 up 1:01, 2 users, load average: 0.00, 0.00, 0.15; runlevel 2020-09-04
------------------------------------------------------------------------
Benchmark Run: Fri Sep 04 2020 21:26:57 - 21:55:00
4 CPUs in system; running 1 parallel copy of tests
Dhrystone 2 using register variables 38124852.7 lps (10.0 s, 7 samples)
Double-Precision Whetstone 6422.0 MWIPS (9.9 s, 7 samples)
Execl Throughput 4264.8 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 515046.2 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 140474.5 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 1617517.8 KBps (30.0 s, 2 samples)
Pipe Throughput 697605.3 lps (10.0 s, 7 samples)
Pipe-based Context Switching 170352.7 lps (10.0 s, 7 samples)
Process Creation 10427.0 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 9734.6 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 2353.1 lpm (60.0 s, 2 samples)
System Call Overhead 398924.8 lps (10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 38124852.7 3266.9
Double-Precision Whetstone 55.0 6422.0 1167.6
Execl Throughput 43.0 4264.8 991.8
File Copy 1024 bufsize 2000 maxblocks 3960.0 515046.2 1300.6
File Copy 256 bufsize 500 maxblocks 1655.0 140474.5 848.8
File Copy 4096 bufsize 8000 maxblocks 5800.0 1617517.8 2788.8
Pipe Throughput 12440.0 697605.3 560.8
Pipe-based Context Switching 4000.0 170352.7 425.9
Process Creation 126.0 10427.0 827.5
Shell Scripts (1 concurrent) 42.4 9734.6 2295.9
Shell Scripts (8 concurrent) 6.0 2353.1 3921.8
System Call Overhead 15000.0 398924.8 265.9
========
System Benchmarks Index Score 1152.9
------------------------------------------------------------------------
Benchmark Run: Fri Sep 04 2020 21:55:00 - 22:23:04
4 CPUs in system; running 4 parallel copies of tests
Dhrystone 2 using register variables 103355568.3 lps (10.0 s, 7 samples)
Double-Precision Whetstone 22425.8 MWIPS (9.9 s, 7 samples)
Execl Throughput 10514.5 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 878593.5 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 237997.4 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 2896282.9 KBps (30.0 s, 2 samples)
Pipe Throughput 1718493.4 lps (10.0 s, 7 samples)
Pipe-based Context Switching 381500.2 lps (10.0 s, 7 samples)
Process Creation 26280.8 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 18979.1 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 2716.0 lpm (60.1 s, 2 samples)
System Call Overhead 951109.4 lps (10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 103355568.3 8856.5
Double-Precision Whetstone 55.0 22425.8 4077.4
Execl Throughput 43.0 10514.5 2445.2
File Copy 1024 bufsize 2000 maxblocks 3960.0 878593.5 2218.7
File Copy 256 bufsize 500 maxblocks 1655.0 237997.4 1438.1
File Copy 4096 bufsize 8000 maxblocks 5800.0 2896282.9 4993.6
Pipe Throughput 12440.0 1718493.4 1381.4
Pipe-based Context Switching 4000.0 381500.2 953.8
Process Creation 126.0 26280.8 2085.8
Shell Scripts (1 concurrent) 42.4 18979.1 4476.2
Shell Scripts (8 concurrent) 6.0 2716.0 4526.6
System Call Overhead 15000.0 951109.4 634.1
========
https://en.wikipedia.org/wiki/X86_assembly_language#Execution_modes
Real mode (16-bit)
Protected mode (16-bit and 32-bit)
Long mode (64-bit)
Virtual 8086 mode (16-bit)
System Management Mode (16-bit)
https://software.intel.com/en-us/articles/introduction-to-x64-assembly
General Architecture
Since the 64-bit registers allow access for many sizes and locations, we define a byte as 8 bits, a word as 16 bits, a double word as 32 bits, a quadword as 64 bits, and a double quadword as 128 bits. Intel stores bytes "little endian," meaning lower significant bytes are stored in lower memory addresses.
最近ではコードレビューシステムを取り入れてる会社は多いだろうが
まともに運用できているのか知りたい。
いちゃもんつけては10回、時には100回以上書き直させるというキチガイが暴れていたからだ。
1文字の変更でも数十行はコミットメッセージを書かねばならず、
ブーリアン型を2つ使っているだけでも
同じ処理をしている2行が一度でも現れたら関数化しなければならなかった。
重要なのは、別の修正でブーリアン型を2つ使っている箇所をByte型のビット演算にして
同じ処理をしている2行が一箇所でもあればそれらを全部関数化すると
正確さを追求しているのでもなく、効率化でも、高速化でも、平易化でもなく
難癖つけてやり直しを命じることが目的になっていた。
出来上がったコードはひどい出来だった。
やり直すごとにクソになっているのに書き直さなくてはいけないのが本当に苦痛だった。
ときには、嫌がらせ目的でパッチのすべての行に「is it correct?」と書いたり、
すべてのパッチを作成直後に減点してコミットできないようにしたりしていた。
変数名を決めるだけで5個ぐらい候補を上げてどれが好みですか、とキチガイにメールで聞くことすらあった。
一人でそれができてしまう、というのがとても気がかりだ。
アニメがはじまったついでにPC98版 YU-NOのメッセージファイルフォーマットを解析してみた。
"*.MES"
+0 offset(2byte)
+2 辞書データ(offset - 2 byte) sjis2byte文字のつめあわせ
| 0x06 | 次の0x06までのデータがファイル名 |
| 0x11 | 入力待ち |
| 0xC0-0xCF,0x60-0x7F | 0x20を足して次の1byteを追加すればsjisの1文字になる |
| 0xD0-0xFF | 0xD0を引いて2倍した数値に該当する辞書データの1文字 |
| 0x133003 | 主人公の名前に置き換え |
他にもコマンドいろいろあるみたい
もし本気で言ってるのなら、品質なんて担保できるわけがないのだ。
あのドキュメント群が、どのようにしてこの世に産まれ出たのか、顧客(エンドユーザーではない)も開発チームも知っているはずだ。
決して詳細設計ではなく、「プログラミングを一切知らないエンドユーザーが見て解る」機能について説明しただけのドキュメントなのだ。
そして更に、上っ面の機能ではなく内部仕様までこと細かく記述した「詳細設計書は作成しない」ことになったのだ。
それを顧客⇔開発チーム双方合意したうえで書かれたモノである。
すなわち今あるドキュメントは、たとえば「○○画面には△△が入力でき、決定ボタンでホストシステムに登録されます。」ということが書かれているだけで、決して「入力された△△を5byteと3byteと8byteの位置で分割し、□□と連結したものを送信用XMLのほにゃららタグにセットしてからホストに送信する。」といったことは書かれていないのだ。
なぜなら、システマティックな知識を持たないエンドユーザーが読んでもわからないからだ。
エンドユーザーは、仕組みはどうあれ、思った通りに入力したデータがホストシステムに登録できることだけを望んでいるのだ。
ところが、だ。
なぜか今は、その上っ面の機能だけが書かれたドキュメントだけに基づいてシステム要件が検討されていると言うのだ。
無理に決まっている。
上っ面の機能ですら必ずしもすべて書いてあるわけではないのだ。
誰がどう見ても数字しか入力しない入力欄には、誤って英字や全角文字を入れてしまうことが無いようチェックしたりしているのだが、「そんなの当たり前でしょ?」的なレベルのことは省略されていることも多々ある。
そしてその「それは書かなくて良いんじゃん?」には明確な基準は無く、レビュアーの感覚、さじ加減次第で省略されるのだ。
経緯は絶対に知っているはずだ。
絶対ということは絶対にない!と言うのなら、ドキュメント作成時から上流工程に携わっている人間でも知らない可能性が無いこともないのだろう。
だが、本気で「知らない」と言うのであれば、恐らくその人間はポンコツの極みである。
そのような経緯があるにも関わらず、今になって「ドキュメントに書かれていないこと」を見つけると、「ドキュメント不備だ」「きちんと書かれていないから正しい要件調整ができないじゃあないか」「不具合なのだからすぐ直せ」だとか……もうね、アホかと、バカかと。
期限と費用を重視して、詳細設計書を省略したんじゃねえのかよ?
であれば、追加開発時に改めて現状把握のためにソースコードの解析を伴う調査が必要になるに決まってるじゃねえかよ。
でもその工数を開発チームに与えることはしない。
未定義部分は末端の担当者に「ユーザーに質問してみて」と、体の良い形で実のところ調整作業自体を丸投げする。
遅れや障害でも発生しようものなら「なぜだ?!」の追及の手は緩めず「対策を考えろ」とか、根本原因の大部分を上流が占めていることを認めようとは決してしない。
それで「このプロジェクトはウォーターフォールだから」とか、どの口?
もうね、アホかと、バカかと。
集計期間 2018年3月23日 20時10分 〜 2018年3月27日 1時0分、3日間(77時間)
集計対象は2018年3月23日 20時10分以降ファーストブクマされたエントリーで新着エントリーに入ったエントリーに限った
| 最大到達ブックマーク数 | タイトル | ドメイン | 新着リスト滞留時間(時間) | 新着リスト最終時間 | ファーストブクマ時間 | |
|---|---|---|---|---|---|---|
| 1 | 174 | ActiveRecordデータ処理アンチパターン / active-record-anti-patterns // Speaker Deck | speakerdeck.com | 30 | 2018-03-27 01:00 | 2018-03-25 18:25 |
| 2 | 136 | 「技術チュートリアルをnoteで売る」っていう社会実験をしてみた結果、めっちゃくちゃ可能性を感じた話|Review of My Life | review-of-my-life.blogspot.com | 29 | 2018-03-27 01:00 | 2018-03-25 19:57 |
| 3 | 113 | 私服OKのIT企業でそこそこにちゃんとした格好をする方法 - ミネムラ珈琲ブログ | www.minemura-coffee.com | 43 | 2018-03-26 11:50 | 2018-03-24 16:20 |
| 4 | 90 | 発表資料: Elasticsearchによる 全文検索の実装 - Islands in the byte stream | gfx.hatenablog.com | 42 | 2018-03-26 12:00 | 2018-03-24 17:10 |
| 5 | 90 | 正しく失敗しながら進むプロダクト開発/railsdm2018 // Speaker Deck | speakerdeck.com | 33 | 2018-03-27 01:00 | 2018-03-25 15:52 |
| 6 | 86 | Rails Developers Meetup 2018 で「MySQL/InnoDB の裏側」を発表しました - あらびき日記 | abicky.net | 34 | 2018-03-27 01:00 | 2018-03-25 14:46 |
| 7 | 78 | 90%が間違えてる!?転職エージェントの選び方と効果的に使いこなす徹底マニュアル | career-rules.com | 45 | 2018-03-26 08:00 | 2018-03-24 11:00 |
| 8 | 77 | 厳選7種のチャートパターンを活用したFXのエントリー方法【事例付き】 | mugen-fx.com | 14 | 2018-03-27 01:00 | 2018-03-26 11:00 |
| 9 | 76 | suikahara漫画 : ★専門学校 | blog.livedoor.jp | 14 | 2018-03-27 01:00 | 2018-03-26 10:37 |
| 10 | 74 | 『ウルティマ オンライン』MMORPGの元祖がもたらした、多数の発明とは? “ロード・ブリティッシュ”らが明かす開発秘話【GDC 2018】 - ファミ通.com | www.famitsu.com | 43 | 2018-03-26 17:40 | 2018-03-24 21:43 |
| 11 | 70 | 小泉進次郎氏「平成政治史に残る大事件」森友文書改ざん:朝日新聞デジタル | www.asahi.com | 30 | 2018-03-27 01:00 | 2018-03-25 18:27 |
| 12 | 66 | 『うる星やつら』同窓会 実は杉山佳寿子はラム役を狙っていた? - otoCoto | otocoto.jp | 24 | 2018-03-27 01:00 | 2018-03-26 00:35 |
| 13 | 66 | Linuxカーネルソースの減量 // Speaker Deck | speakerdeck.com | 44 | 2018-03-26 11:50 | 2018-03-24 15:42 |
| 14 | 64 | Realworld Domain Model on Rails // Speaker Deck | speakerdeck.com | 32 | 2018-03-27 01:00 | 2018-03-25 16:02 |
| 15 | 64 | Microservices Maturity Model on Rails // Speaker Deck | speakerdeck.com | 42 | 2018-03-26 13:40 | 2018-03-24 19:25 |
| 16 | 63 | 僕が毎月「妻の布ナプキン」で手を血に染める理由(鈴木 大介) | 現代ビジネス | 講談社(1/4) | gendai.ismedia.jp | 46 | 2018-03-26 12:00 | 2018-03-24 13:31 |
| 17 | 63 | 牧野由依はなぜ復帰作で“声”をテーマにしたのか 本人が明かす、歌手活動休止の真相と次の一歩 - Real Sound|リアルサウンド | realsound.jp | 46 | 2018-03-26 09:00 | 2018-03-24 10:05 |
| 18 | 62 | 「デス様じゃねーか」「オーキド博士いるぞ!」 「ポプテピピック」最終回さまざまな意見が寄せられる - ねとらぼ | nlab.itmedia.co.jp | 33 | 2018-03-27 01:00 | 2018-03-25 15:58 |
| 19 | 61 | 子どもの能力遺伝子検査を受けてみたよ!ともちんの意外な能力は!? - ともちんブログ | www.tomochinchin.com | 15 | 2018-03-27 01:00 | 2018-03-26 09:09 |
| 20 | 60 | バス因子が自分で バス因子を脱するための方法 // Speaker Deck | speakerdeck.com | 32 | 2018-03-27 01:00 | 2018-03-25 16:01 |
| 21 | 56 | ノンデザイナーのためのコンセプト & ロゴ作り実践講座 feat. savanna.io // Speaker Deck | speakerdeck.com | 44 | 2018-03-26 10:00 | 2018-03-24 13:34 |
| 22 | 54 | インターネットでどうやってお金を稼ぐの?家で出来ちゃう「最近の副業」を16選まとめてみた。 | kanemotilevel.com | 35 | 2018-03-26 21:20 | 2018-03-25 10:10 |
| 23 | 54 | 米銃器老舗レミントン経営破たん、トランプ政権下で財務悪化 写真1枚 国際ニュース:AFPBB News | www.afpbb.com | 7 | 2018-03-27 01:00 | 2018-03-26 17:15 |
| 24 | 54 | これからGolang開発を行うRubyistたちへ - Qiita | qiita.com | 55 | 2018-03-26 11:20 | 2018-03-24 03:39 |
| 25 | 53 | 個人のためのコードレビューサービスを開発しました。 - Qiita | qiita.com | 14 | 2018-03-27 01:00 | 2018-03-26 10:13 |
| 26 | 53 | 昭恵氏の影響「総理しか説明できない」 小泉進次郎氏:朝日新聞デジタル | www.asahi.com | 43 | 2018-03-26 11:50 | 2018-03-24 16:25 |
| 27 | 53 | これ一本でフルカラーの描写が可能に!「CMYKペン」 | ギズモード・ジャパン | www.gizmodo.jp | 46 | 2018-03-26 05:50 | 2018-03-24 07:45 |
| 28 | 52 | ソーシャルメディアを「タダ」で使うコスト|松井博|note | note.mu | 43 | 2018-03-26 12:30 | 2018-03-24 17:07 |
27日1時以降にホットエントリー入りした可能性は残っている。ただし新着エントリーに24時間以上いてからホットエントリーに上がれるケースは稀。
3ブックマーク集めても新着エントリーに入れなかったエントリーもあるはずだが、それは集計の対象外になっている。
ホットエントリーになれないエントリーはスライド共有サービスSpeaker Deckからのエントリーが目立つ。Speaker Deck以外でもテック系のエントリーが目立つ。
IsNumeric Function (Visual Basic)
IsNumeric returns True if the data type of Expression is Boolean, Byte, Decimal, Double, Integer, Long, SByte, Short, Single, UInteger, ULong, or UShort, or an Object that contains one of those numeric types. It also returns True if Expression is a Char or String that can be successfully converted to a number.
ここは普通のことをいっている。 IsNumeric が True を返すのは以下のとき。
Indicates that no beginning value has been assigned to a Variant variable. An Empty variable is represented as 0 in a numeric context or a zero-length string ("") in a string context.
Empty は context にあわせて以下のように解釈される。
というわけで IsNumeric(Empty) は Empty が数値として解釈されて 0 になるので True を返す。