はてなキーワード: CPUとは
新たなアーキテクチャーを創設するくらいならオープンソースの分散並列(OpenMP-MPI)のハイブリッド(CPU-GPU)数値処理ソフトウェア開発に力を入れたほうがいい。
少なくともオープンソースで動くOpenMP-MPI CPU-GPUの基本的な数値計算ソフト(特に行列計算)は世界最先端の研究内容。こういったソフトを毎回アーキテクチャーごとに作るのは金の無駄だし、x86-x64環境で動くようにすればいい。
現状の数値シミュレーションなんてKrylov methodなどの行列処理が主な作業なんだから、それを汎用アーキテクチャで使えるようにしたほうがいい。CPU-GPU+OpenMP-MPIで動く行列処理のソフトがあればそれが汎用の処理として使えるんだからくそみたいにコンパイルがめんどくさいアーキテクチャを作るくらいなら、汎用で使えるオープンソースのソフトを作れよ。
そんなコードがTrilinosなんだけどね。
私は2018年、つまり貴方達の生きる時代の5年後からタイムスリップしてきた将棋オタクの増田です。
2018年のコンピュータ将棋界はどうなっているか、そして人間が指す将棋の世界はどう変わったのかを一足先に体験した身として書いておきたい。
2013年頃の最強ソフトの一角GPS将棋は東大のクラスタを使ってCPUを並列にしていたけど、2018年ではCPUを計算用途に使うソフトはだいぶ少なくなって、今ではGPUを使う事が当たり前になっている。これによって計算できる量は飛躍的に伸びて、2018年の最強ソフトはGPS将棋の330倍の量を計算できるようになったんだ。
東大チームのGPS将棋に触発されて全国の大学が将棋ソフトの開発に乗り出し、今や個人の開発者はほとんど日の目を浴びなくなっちゃった。大学が持つ計算リソースを贅沢に使えるチームに個人開発者が勝てるわけがないのは当然だ。東大は開発からは手を引いてしまったので、今は東工大、東京理科大、中央大学が3強だ。関東の理系に強い大学がたくさん参戦して学生を集める宣伝としてもコンピュータ将棋が使われるようになっている。箱根駅伝みたいな感じ。
Googleが世界コンピュータ将棋選手権に出場した2016年の事も書いておかなきゃね。その前年にそれまで個人が細々とやってきたあの3.1415.....の円周率桁数計算に進出してギネス記録を40000倍も更新して世界中から大人げない奴と白い目で見られたあの黒船Googleが何と将棋に興味を持っちゃったんだ。Googleが保有するクラスタのうち50000台を使っての勝負。「勝てるわけがない」「もし欧米企業に負ければ日本文化の敗北だ」ってマスコミは大いにかき立てたんだけど結果はなんと地元日本の代表、将棋に特化した100台ほどのGPUクラスタの勝利だったんだ。CPUという汎用計算リソースだけでは特化クラスタに勝てなくなってしまったという情報工学的にも大変興味深い一戦だった。
その翌年2017年にはアジア代表として中国人民解放軍が参戦して来てこれまた大いに盛り上がった。人民解放軍はなんと一般庶民のコンピュータとスマホを全て総動員、27億台のクラスタで勝負を挑んできたんだ。これにはたまげたね。「今後こそ勝てるわけがない」「もし負ければ技術立国日本の敗北だ」ってマスコミは大いにかき立てたんだけど、劣勢を跳ね返して終盤に奇跡の逆転勝ちを収めたのは何と日本代表だったんだ。終盤に日本が取られても取られても「6四 歩」を打ちまくったのが天安門事件(1989.6.4 一般民衆の蜂起)を連想させて共産党謹製のプログラムが一部クラッシュしたのが勝因とされている。心を持たないはずのプログラムなのに、結局は書いた人の何らかの思想がそこに反映されちゃうっていう情報工学的に興味深い一戦だったね。
プロも奨励会(プロの育成機関)の子らも、これだけ強くなったコンピュータ将棋を教師とはしていない。いまだに人から学んでいる。なぜなら、確かにコンピュータは強いけれど、その「理由」を説明できないからだ。
トッププロのような未知の領域に挑まなければいけない人にとってはコンピュータの指す異次元の手から少しは学ぶ事が可能だ。でも、特に奨励会の子らは一手ごとにその理由を解釈しながら強くなる段階だ。だからコンピュータ相手にいくら指しても上達しないし、棋符を見ても何も学べない。どんな世界でも、理由を解釈しなければ人は成長しないっていう良い例なんじゃないかと僕は思っている。
これはコンピュータが人間よりも遥かに強くなってしまった将棋の世界から我々が学んだ最も大きな教訓なのかもしれない。コンピュータには物事の理由を説明できない。彼らがやっているのはただの計算なんだ。何の理解も解釈もしていない。ただ計算しているだけなんだ。2018年のソフトの主流手法はDeepLearningと呼ばれる人の脳のニューロンを模倣した機械学習なんだけど、これはもう中で何をやってるのか作ったエンジニアですらもわからないブラックボックスだ。何をやってるのかわからないけど、強い。強いのは間違いないし誰も勝てない。でも彼(ソフト)は教師にはなれない。そこから何も生まれない。ただ彼自身が強いだけ。それだけなんだ。それにいったい全体、何の意味があるのだ?優秀な人間は優秀な人間を生み出す。そうやって人類は繁栄してきた。他の生き物だってそうだ。でも機械はそれ自体から何も次に繋げないんだ。
ああ、そろそろ帰らなきゃ2018年に。言いたい事は全て書いたよ。とにかく何が言いたいかって、やっぱり将棋は最高だってことなんだ。ハッシーのお陰で今は渋谷の女子高生の間でも将棋が大ブームだから、僕みたいなオタクな風貌での将棋が強ければチョベリグな思いができるってわけさ☆まだルールぐらいしか覚えてないって言う人は今からでも遅く無いよ。
最初は物凄く弱いけど、機械学習とクロールによりあちこちから棋譜と定跡を吸収。あっという間にプロを超える棋力になるも、棋譜の著作権をめぐり将棋連盟と訴訟合戦に。
普通に強いけど操作性が悪くバージョンアップのたびに悪くなっていく。更にある局面になるとセキュリィティホールが開き個人情報を流出する。
「あなたの将棋ライフのすべてが新しくなります、そうiShogiならね」とぶち上げるも、意外と普通の棋力。
棋風や棋力から「もしかして◯◯はあなたの友達ではないですか?」と対戦相手を薦めてくる。
月額課金サービスだが自動更新の上に退会できずに社会問題化。消費者庁に注意勧告を受ける。
戦法や棋士のトレーディングカードが勝つたびに貰えるオンラインゲームを開発するも、一部のレアカードは高い課金をしないと手に入らないため社会問題化。更にゲーム自体が他社のパクリ(将棋ウ○ーズ)のため訴訟合戦に。
非常に貧弱な棋力な上にCPUが行き場のない駒を打つ、王手放置など致命的なバグを抱えているにもかかわらず自信満々に有料サービスとしてローンチして炎上。バグのたびに犬が現れる。バグ報告や機能改善などの要望がたくさん上がるも、それを無視して駒や盤のデザインを変えるなどして更に炎上。
非常に貧弱な棋力な上に対局中にやたら広告が出る、おまけに対局しようとするとなぜか玉一枚しか無いという致命的なバグを抱えているにもかかわらず有料サービスとしてローンチして炎上。低い評価のレビューを消した上に社長が「文句を言っているのは一部の利用者だけ」と発言し更に炎上。
勝つごとに美少女が脱いでいく脱衣将棋。最初は弱く簡単に脱ぐが、最後の一枚になると突然強くなりなかなか脱げなくなる。対局ごとに課金のため、気がついたら相当の金額をつぎ込むことに。
俺は疲れていた。
二転三転したお店の選定、花束の準備、あいさつの根回し。会場は人気店で、乾杯のビールが少し遅れた。遅れて参加した古参は、「こんなことならボクの推薦したお店にすればよかったのに」と、同じセリフをのべ三度申し述べ、その度に会場の空気を底冷えさせた。俺は笑顔をほほに貼り付け応対し、ビールジョッキを五杯空けた。ビールは嫌いだ。
やたらクラッシュする俺らの成果物。うだつの上がらぬ俺の評価。「3-」と書いた俺の自己評価シートを指差し、「マイナス3の間違いか?」と、上司はゲラゲラ笑っていた。気の利いたジョークのつもりか。
「営業のノジマです。ASAPで明日の朝までにお願いし」俺はメールを読むことを放棄し、電源ボタンを長押しする。ネクタイを外した。
俺は疲れていた。
予定の降車駅の手前で降りた。まだ終電には間がある。少しだけ新鮮な空気が吸いたかった。よれたスーツで街を歩き出す。
「どうですか帰りに一杯?」・・・うるさい。
「さっ、キャバクラのご利用は?」・・・うるさい。俺の気は晴れない。俺の居場所はこの街にも無いのか。
ふと、ゲームセンターの前を通りがかり、気まぐれに自動ドアをくぐる。一時避難だ。
何年ぶりだろうか、ゲーセン。
高校時代は、ストII。予備校に通っていた時分は、バーチャファイター、鉄拳。1フレーム単位の読み合い、思惑のやり取り、日々、開発される新しいテクニック。一度も話したことはない、「馴染み」の対戦相手の客たち。当時のオレはゲーセンには「何か」があるように感じられた。
就職した頃、馴染みだったゲーセンの前を通りがかると、「プリクラ屋」に変貌していた。UFOキャッチャーとプリクラの前にあふれる笑顔、優しさ。彼氏彼女。明るい店内。かつて「ギャラクシアン^3」が稼働していたこともある一階は、屈託のない笑顔に塗りつぶされていた。オレはゲーセンに行かなくなった。どのみち、時間もない。ゲーメストのバックナンバーを処分し、俺はいつしか「社会人」になっていった。
このゲーセンは「プリクラ屋」ではないようだが、あの日の空気とはやはり少し違うもので満たされている。しかし、「行くあてどない、どこか弛緩した匂い」を感じとることはできた。「イラッシャイマセ」ぎこちなく声をかける店員に反射的に笑顔を返す。まずは店内を一望してみるとしよう。
何やらロボットものの大型筐体の前を通りがかる。少し興味をそそられるが、こういうものをやり込む根気が俺にはもう無い。
「レトロゲーム100種類が遊べます!」・・・いまさらパックマンやペンゴでもあるまい。俺に懐古趣味はない。
「鉄拳」シリーズの筐体の前で足を止める。少し懐かしい気がした。だが、俺の知っている「鉄拳」とはすでに大きく異る別物のように思えた。「鉄拳」のインストラクションカードを眺めていると、学生風の二人連れがコインを入れ、CPUを翻弄し始めた。
ぼーっとその鮮やかな手際を眺める。俺が彼に追いつくにはいくら必要だろうか?楽観的にみて、一週間の事前研究と、数ヶ月間に30,000円ほどの資本投入というところか。俺はそれほどゲームが上手いほうではないから、どうにか勝負らしくなるにはそんなところだろう。
しかし、仮に勝負になったとして、その先にあるものは何だろう。さらなる研究と、技の正確さの向上、日々開発される新しいテクニック。俺にとって新しい体験は無いように感じられた。しばらく画面を眺め、その場を立ち去った。
気がつくとまた入り口の付近に来ていた。「音ゲー」と呼ばれているものが固まっている一帯らしい。デイパックの太っちょが目にもとまらぬ勢いで両腕を繰り出し、画面中に降り注ぐバーを消している。俺はギャラリーの間に割り込んでしまったらしく、少しいたたまれぬ思いで脇によける。
しばらくギャラリーの後ろに佇んでいた。ふと、振り向くとそれはあった。ポップンミュージック。誰も気に留めている様子はない。こういうのが俺向きかもしれない。俺は「音ゲー」をやったことが無いが、気まぐれに、コインを投入した。
「オッケーイ♪」不思議な世界が展開しはじめた。ちょっと毒の効いたデザインのキャラクターが画面を飛び跳ねる。明らかに若者向けのキャラクターたち。今の俺は擦り切れたようなオッサンだが、不思議と、彼らに受け入れられたような気持ちがした。
キャラを選択する。「オッケーイ♪」なんだか、少し楽しくなってきた。一曲目が始まる。どうもボタンの対応がうまくいかず、隣のボタンを叩いてしまう。タイミングも合わない。バッシバッシとボタンを強打していているうちに終わった。
あまりスコアも良くないが、二曲目が選択できるようだ。どういうルールかまだ把握していないが、命拾いしたらしい。続いて二曲目を選択する。
やはりボタンを強打してしまう。これは良くない兆候だ。手前の緑、赤、緑を意識に入れ、ほかを「例外」として扱うようにイメージを切り替える。少し押し間違いが減った。余裕が生まれたせいか、タッチも少し柔らかくなる。まだタイミングがあわず、目押しのコツを探っているうちに終わる。やはりスコアはあまり良くないが、不思議と楽しくなってきた。
そうこうしているうちにゲームが終わる。続けざまに2コイン目を入れる。「オッケーイ♪」俺たち、もうフレだよね。そんな感じ。また少し、心が軽くなってきた。
2クレジット目はあまり上達を気にせずに、好きにボタンを叩いてみる。女々しくて女々しくてー、少年よ神話になーれ、つーけまつーけまつけまつげ。そういえばカラオケも何年も行ってなかったな。
3コイン目は入れず、店を後にした。深呼吸し、空を仰ぐ。まだ終電には間がある。一駅だけ歩いてみることにした。
ポップンミュージック、いいじゃないか。
たまにはこういうのもいいもんだ。
スーツを肩にかけ、歩き出した。
いろいろと勘違いしてる推論が多いんだよなあ。
iPhone4Sまで売れに売れていたというのが本当なのであれば、購入者は基本2年縛りをしているわけでよほどの魅力がない限り5を見送るのは至極当然の話でしょう。
4Sほど売れないというのは4Sで購買層には行き渡っただけの話です。
4⇛4SでSoftbankに加えauがキャリアとして加わっているのですから、4Sである程度のピークに達していると考えるのは妥当でしょう。
iPhoneがハードウェアスペックで最近Android端末に凌駕されているかのような誤認をしていますが、さすがにそれは端末を売ってる側としては無知識すぎでは?
iPhone4はハードウェアスペックは同世代のスマートフォンと大差ないですし、iPhone4Sくらいの時期には同世代のスマートフォンはすでに720pディスプレイに移行しつつありました。
iPhoneはハードとしては基本的に一年程度は遅く、最近になって半年遅れ程度に追いついてきてるくらいの認識が妥当でしょう。
ディスプレイ、CPU,メモリ、カメラ、といったものは他の端末と比較して最新にはいませんよ。要するにハードウェアスペックでiPhoneを買うという前提自体が大間違いです。
うっかりMacBookAir(2011)を開いた状態で床に落とし、液晶を割ってしまって修理に出した話。
とある修理店に出して、液晶が修理されて無事に帰ってきた。なんだかピカピカになってて、まるで別のMBAみたいで「すごい磨いてくれたんだなぁ」と思った。
電源を入れると、以前の自分のMacの中身でひと安心。しばらくMBAで作業。
ふと、あまりにピカピカな本体に違和感を感じ、なんとなく本体裏底にあるシリアルを見た。なんと2010のMBAと刻印されてある。
「このMACについて」からSSDストレージを確認した。256GBだったはずが128GBになってた。えっ、と思って「本体裏のシリアル番号が変わってる」と修理屋に問い合わせたら、「裏底のボードを他の機体と付け間違えたので交換します」との返答。
MAC初心者&PCに強くないので誰か教えてほしいのですが、これってどういうことなんでしょう。。
自分の本体の中身がコピーされて他のMBAに乗ることって可能?
裏のボードだけつけ間違えるってありえる?(2010と2011で合うのかどうか)
ちなみに、
・「このMACについて」の情報から見る限り、中身のシリアルは以前のまま。メモリとCPUは変化なし。アップルマークあたりについていた傷がなくなってる(別のものになっているっぽい)、VMWAREたちあげて動画見るだけで異音(以前は無かった)などなど。。
誰か詳しい方ヒントを。。。
「プロテクトかけたアルゴリズムを実装したバージョンに差し替え」たなんて言われると本当に「プロテクト」がかかっているのか確かめてみたくなるのが人情というもの。というわけで、プロテクト強化後のもふったー(v0.9.6b)からconsumer secretが抜けるか試してみた。結論から言うと、あっけなく取り出せた。以下に手順を記す。
動作がよくわかっていないアプリケーションを解析して仕様を明らかにすることをリバースエンジニアリングと呼ぶ。ソフトウェアのリバースエンジニアリングは基本的に対象を逆アセンブルしてひたすら読むことによって行う(その補助に1命令ずつ実行してレジスターやメモリーの様子を観察することもある)。しかし、よっぽど小規模なものでなければオブジェクトコード全体を逆アセンブルして最初から最後まで読むなんてのは不可能だ。人間の読速度には限界があるし、時間も有限だからだ。そして、詳しい動作を知りたい部分というのは全体のごく一部であることが多いので全逆アセンブリを読むのには非常に無駄が多い。
だから、リバースエンジニアリングではいかに詳らかにすべき動作を行っているコードを絞り込むか(=読むべき逆アセンブリを少なくするか)が重要になる。
この場合も同様だ。TwitterのGUIクライアントを頭から読むのは到底無理なので、どうやって解析すべきコードの範囲を狭めるかを考えた。それにはOAuth認証においてconsumer secretがどのような役割を果たすのかを知る必要がある。
OAuth認証で、consumer secretはそのままサーバーに送信されたりはしない。signatureの生成にHMAC-SHA1が使われ、その鍵にconsumer secretが使われる。HMACは次のように算出される。
HMAC (K,m) = H ((K ⊕ opad) ∥ H ((K ⊕ ipad) ∥ m))
ここで
である。
まずはこのあたりから攻めようと思った。SHA-1の計算にはいくつか特徴的な定数が使われるので、そこからSHA-1の計算に使われているであろう関数444190を特定する。この関数のエントリーポイントに中断点(ブレークポイント)を設定してOAuth認証をさせるべくもふったーの「ブラウザで認証」ボタンを押す。狙い通り中断するので関数を抜けるまで実行する。関数401100の4012DAに出た。少し下を見るとこのようになっている。
CPU Disasm Address Hex dump Command Comments 00401311 |. 33F6 xor esi, esi 00401313 | 8D8C24 A40000 /lea ecx, [local.54] 0040131A |. 394C24 14 |cmp dword ptr ss:[local.90], ecx 0040131E |. 75 0E |jne short 0040132E 00401320 |. 3BF5 |cmp esi, ebp 00401322 |. 73 29 |jae short 0040134D 00401324 |. 0FB68434 A400 |movzx eax, byte ptr ss:[esi+esp+0A4] 0040132C |. EB 21 |jmp short 0040134F 0040132E | 3BF5 |cmp esi, ebp 00401330 |. 73 1B |jae short 0040134D 00401332 |. 8B5424 18 |mov edx, dword ptr ss:[local.89] 00401336 |. 52 |push edx ; /Arg1 = [LOCAL.89] 00401337 |. 8D8C24 FC0000 |lea ecx, [local.33] ; | 0040133E |. 8BD6 |mov edx, esi ; | 00401340 |. E8 CB4D0000 |call 00406110 ; \mofooter.00406110 00401345 |. 83C4 04 |add esp, 4 00401348 |. 0FB6C0 |movzx eax, al 0040134B |. EB 02 |jmp short 0040134F 0040134D | 33C0 |xor eax, eax 0040134F | 34 5C |xor al, 5C 00401351 |. 888434 B80000 |mov byte ptr ss:[esi+esp+0B8], al 00401358 |. 83C6 01 |add esi, 1 0040135B |. 83FE 40 |cmp esi, 40 0040135E |.^ 72 B3 \jb short 00401313 00401360 |. 895C24 3C mov dword ptr ss:[local.80], ebx
0040134F | 34 5C |xor al, 5C
が注意を引く。もしかしてこれはopadとのxorではないか?
00401351 |. 888434 B80000 |mov byte ptr ss:[esi+esp+0B8], al
はxorした結果を格納している。
先ほどの中断点は無効化しこのループを抜けた地点である401360まで飛ばす。この時点でesp+0B8を見ると次のようになっている。
Hex dump 64 2E 16 64|37 04 32 6D|0F 0D 26 29|3A 37 1F 2F| 18 69 6E 6E|0D 25 29 33|11 34 29 69|12 36 24 1E| 05 16 33 6A|04 3B 0E 68|7A 5C 5C 5C|5C 5C 5C 5C| 5C 5C 5C 5C|5C 5C 5C 5C|5C 5C 5C 5C|5C 5C 5C 5C|
あとはこれと5Cとをxorすればconsumer secretが手に入る。終わり。
はてなは増田のスーパーpre記法で半角の<>が含まれていると投稿が出来ないのを早く直してください。
もふったーの作者から反応があった。「本気だったつもりのもふったーのデバッグ処理が残ってた」らしい(http://blog.livedoor.jp/blackwingcat/archives/1763951.html)。修正したとのことなので最新版(v0.9.6e)を見てみた。確かに若干変更されているが何の問題もない。SHA-1の呼び出しに中断点を設置して渡されているバイト列を見るだけ。
CPU Disasm Address Hex dump Command Comments 00401324 |. 8D4424 20 |lea eax, [local.102] 00401328 |. 50 |push eax ; /Arg1 = 00401329 |. E8 623A0400 |call 00444D90 ; \mofooter.00444D90
ここでeaxが指すメモリーを見ると以下のようになっている。
01 23 45 67|89 AB CD EF|FE DC BA 98|76 54 32 10| F0 E1 D2 C3|00 02 00 00|00 00 00 00|40 00 00 00| 40 4F 73 53|62 54 5C 7E|59 57 53 42|55 45 7A 57| 61 47 7A 5B|42 4F 7B 61|5D 66 5E 7A|42 7F 40 63| 79 66 05 55|79 4C 60 42|02 10 36 36|36 36 36 36| 36 36 36 36|36 36 36 36|36 36 36 36|36 36 36 36|
これまで他の人に用意してもらったサーバで自分のプログラムを動かしたことはありましたが
自分自身で一からサーバをセットアップしたことはほとんどなかったので、いろいろとハマりました。
作業を進める上で困ったり考えたりしたことを書いていきます。
ちなみにサーバ自体はさくらのクラウド、OSにはCentOSを使用しているので、それ前提のお話になります。
最初にサーバを起動してから速やかにSSHとファイヤーウォールの設定を変更しました。
はてブなんかでも定期的に話題になっているのでおなじみですね。
・SSHやHTTP(S)など、どうしても公開しなければならないポート以外は遮断する
さらっと書きましたが、設定をミスって自分自身もログインできなくなり、何度かOSの再インストールを繰り返しています。
後から気付いた事ですが、さくらのクラウドではクラウド管理画面のリモートスクリーン経由でローカルログインできるので
別にOS再インストールしなくてもiptablesの設定を変更できたんですよね...
逆に言うといくらファイヤーウォールとSSHを設定しても管理画面にパスワードログインの環境が残ってしまうので
パスワードの管理には引き続きしっかり気を使う必要がある。ということでもあります。
httpd,php,mySQL,memcachedなど必要なサービスをインストール、設定し
作成したWebアプリのプログラムを乗せて動かしてみました。が、動作が重いような...
開発環境ではさくさく動いていたのに、本番環境ではどのページ遷移ももっさりしています。
abで計測してみたところ、開発環境のおよそ2分の1のスコアとなってしまいました。
開発環境が仮想2コアのメモリ1Gだったのに対し、本番環境が仮想1コアのメモリ2Gと
CPUの性能について半減しているのでそのせいかな、と思いつつ設定を見なおしていたところ
特に使っていないと思われたipv6を停止した途端にパフォーマンスが改善されました。
ページ遷移に伴うもっさり感が解消され、abの計測結果も開発環境と遜色ない結果が出ています。
デフォルトで有効になっていたipv6の影響により余計な処理が走っていたのかもしれません。
パフォーマンス改善に喜んだのも束の間、会員登録などの処理でWebアプリからメールを送信したところ、Gmail宛のメールがことごとく迷惑メールと判定されるという事案が発生。
spfの設定を行なう、メールの内容について吟味するなどの回避策を試してみましたが一向に改善されません。
試しにHotMailとexciteのメールアカウントに送信したところ、そちらではそもそもメールを受け付けてもらえずエラーコードが返って来る始末。
困り果てていたところ、エラーの内容からサーバのIPがspamhousにスパム送信元として登録されていることが判明しました。
postfixのホスト名の設定がデフォルトで「localhost.localdomain」などとなっており、それをそのまま使っていたためにGmailがスパム送信元として通報してしまったようです。
設定を修正し、spamhousに解除依頼を提出。事なきを得ました。
クラウドを利用すれば、サーバを停止することなく簡単な設定でスケールできるようになる。
と、自分で勝手に思い込んでいたせいなのですが、消えては困るデータの一部をmemcachedに保存する実装を行なっていました。
実際のところさくらのクラウドではサーバを完全に停止しなければプラン変更を実施できないし
そもそもサーバが落ちたらどうするんだよ。ということで、急遽KVSを変更する必要に迫られました。
速度の低下が気にかかったため、いくつかの候補を実際に動かし
phpのスクリプトから1万件のデータ読み書きを行うという形でmemcachedと比較してみたところ次のような結果に。
サービス | 1万件書込 | 1万件読込 |
memcached | 2.55秒 | 2.30秒 |
handlersocket | 21.23秒 | 2.71秒 |
InnoDB | 20.23秒 | 5.10秒 |
kyotoTycoon | 8.22秒 | 7.72秒 |
さすがに読み書きそれぞれmemcachedが最速ですが、読み出しについてはhandlersocketも負けていません。mySQLから普通にSELECTしてもmemcachedの2倍程度の時間しかかからないという結果が意外でした。
しかしながら書き込みのほうではhandlersocketもmemcachedの10倍近くの時間がかかっており、少々速度的な影響が気になってきます。memcachedの倍のパフォーマンスを記録したという記事を見たことがあるので、設定、チューニングについて生かしきれていない部分があるのかもしれないとも思いましたが、知識が不足しているところで無理をすると問題が発生した時に対処できないと考え、候補から除外することとしました。
結局、今回の用途では読み込み処理より書き込み処理のほうが圧倒的に多いことも考慮し、kyotoTycoonを採用しました。実際の利用箇所に組み込んでabで計測してみたところ、だいたい30%程度のパフォーマンス低下にとどまっており、これなら許容範囲かと考えています。
実行系と参照系に分ける形でmySQLのレプリケーションを行なっていたのですが、度々レプリケーションが停止する現象が発生しました。
一部のテーブルについて肥大する可能性が考えられたため、参照系に接続するプログラムで使わないテーブルをレプリケーションから除外していたのが原因です。
例えばtabelAをレプリケーションし、tableXをレプリケーションしないという設定にしたうえで
実行系でINSERT INTO `tableA` SELECT `value` FROM `tableX`などといったクエリを発行すると、参照系にtableXが無いためエラーが発生して止まってしまいます。
レプリケーションするテーブルを限定する場合はプログラム側でも注意を払わないと危険です。当たり前ですが。
監視といえばcactiやnagiosが定番なのかもしれませんが、設定が複雑そうで尻込みし、monitを使用することにしました。
簡単な設定でloadaverageやメモリ、HDDの使用量をチェックできるほか
httpdやmysqldなどといったサービスのプロセスを監視し、もし落ちていたら自動で起動してくれるので助かります。
パスワード保護を行うとしても、サイト全体の管理画面など自分しか使わないプログラムはWebに晒しておきたくない。
というわけで、一部のWebアプリを秘匿する設定を行いました。
管理画面のWebアプリを9999番など閉じているポートに設置した上で、SSHを利用したトンネルを掘ります。といっても
上記のようなコマンドで管理画面のWebアプリを置いたサーバへログインするだけです。
ブラウザのアドレス欄にhttp://localhost:9999/と打ち込めば、接続が開いている間のみアクセス可能になる感じですね。
サーバにログインできる人でなければ実行できないことなので、気分的にある程度安心します。
自動でログのバックアップを行いたいと考えたのですが、パスワード無しの鍵でログインして転送する形には抵抗がありました。
調べてみたところ、authorized_keysに公開鍵を記入する際の設定で、その鍵でできることを制限するという手段があるようでした。
具体的には、authorized_keysに
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="some commands" ssh-rsa AAAAB3NzaC1yc2EAAA...
などとして公開鍵を追加しておくと、その鍵でログインした直後にcommand=""の部分で設定したコマンドを実行して接続を終了する挙動となり
接続のフォワードもできなくなるため、パスワード無しでも鍵の流出に関するリスクを最低限に留めることができるというわけです。
commandの実行結果は標準出力から受け取ることができるので、例えばcommand=""の部分にファイルの内容を表示する処理を設定していたとすれば
ssh -i .ssh/no_password_key user@xxx.xxx.xxx.xxx > /path/to/file
などとしてログインの結果をファイルに書き込むだけで、簡単にファイルの転送が実現できます。
他にも大小さまざまな問題に行きあたりましたが、忘れてしまったor書ききれないのでここまでとします。
たった1つのサイトを公開するにしても問題というのは尽きないものだと実感させられました。
今は基本的な情報だけでなく、ちょっと突っ込んだ内容でも検索で解決していけるので嬉しいですね。手がかりを残してくれた先達に感謝することしきりです。
現状ではひとまずの見切りを付けて公開していますが、より堅牢で負荷に強いサーバとなるよう、随時チューニングを行なっていこうと考えています。
個人サイトや小規模な商業サイトなどプロモーションにあまりお金をかけられないサイトを主な対象とした、無料で出稿できる広告ネットワークサービスです。
既存のサービスで近いのは「あわせて読みたい」や「zenback」、各社提供のRSS相互リンクサービスなどになるでしょうか。
広告としての体裁がある分、それらより若干積極的な性質になるのではと考えています。
現時点ではサービス本体のプロモーションに苦心するという本末転倒そのものの状況でありますが、もしよろしければ見ていただけると嬉しいです。
なんだろう、下請けにいいものを作ることを求められても困るぞ?
できた後に、発注書に書いてないような高スペックを求められたり、常識ですよねとセキュリティーを求められたりするが
とくに、監視でCPUがどうのこうの、というのは 仕様書に明確に どういう値でどう監視するか、という仕様を書いてくれ。
そうじゃないなら、最高の製品を求めるなら、下請け、ではなく社内エンジニアを使ってくれ。
できるかできないか?という話題をすれば出来ることがあるが、
見積もっているか、見積もっていないか?という話題では、発注書に書かれていないことは見積もってないし、
勝手なことを言うようだし、いろいろあるし、言ってることも最もだと思うことも沢山あるが
下請けにいろんなことを期待しすぎ。
下請けじゃなく、納品業者で製品ならともかく、下請けしているものに、発注書以上のことを求められてもな。
正直、クオリティーを求めることは、製品として出ているパッケージを買うか、社内エンジニアでヤッてくれ。
常識的な品質というものは、ひとによって違うからどうにもならんし
そもそも、金額の問題による所が多すぎる。僕が年収XXで、僕の能力がこのぐらいですから、1人月でこのぐらい出来るはず。
というのは、正直 通じない。
http://anond.hatelabo.jp/20130309233920
「下請けが客より技術的に上なのは当たり前」というが、それこそ思い込み。
俺は15年以上プログラマをやってきた。そんな俺がリーマン・ショックで職を失い、得た職はSE(SEになった後で「戻ってきてくれ」的な電話が元請けからかかってきたが、SEになってしまったので断った)。
今まで下請けだったのに、上流工程やったり、下請けが作ったプログラムの受け入れ検証をやる事になった。
そこでは元請けは元請けで、技術力があったところで下請けの尻拭いしか出来ない事を思い知った。
俺「あの、すいません。今ちょっとnetstat見たら、CLOSE_WAITだらけでして。ソケットクローズあたりで問題がありそうですよね?」
下「へ?くろーずうぇいと……ソケットとは限りませんよね?とにかく調べますが、それが何か問題でも?」
俺「このタイミングで必ずゾンビプロセスが発生するようなんですが」
下「はぁ。ゾンビって特にリソース食わないですよね?それが何か問題でも?」
俺「今回の修正、場当たり的で、多分ケースAは解決しますがケースBで破綻しますよね。これこれこう直して下さいよ」
下「いや、こちらではあらゆるケースを想定してその修正にしましたので。何か問題でも?」
俺「この監視システム、クラウドに載せる事を考慮に入れてませんよね?CPUガンガン振り回しても、監視システムが報告する使用率が90%超える事が無いんですが」
とまぁこんな感じで、いちいち素晴らしい回答が来るのですよ。
元請けなんだが下請けのデバッガのような存在になっていく(一般公開される前にバグを潰すに越した事は無いので、別にいいのだが)。
上流工程は特にITのスペシャリストじゃなくてもなれるかも知れないが、下請けこそ、IT未経験者で適当にプログラマになった人は多いでしょ。
特に下請けかつ課長・部長あたりだとITも分からず、単にスケジュール表をこねくり回してるだけで居るだけ邪魔な人が多いわけで。
まおゆうあたり見て、教育と上下の世界、そしておっぱいの素晴らしさを認識して、元請けやら下請けやらのフィルターでモノを見ないようにすべきではないだろうか。
Xbox360はGDDR「3」ね。
あとPCI-Eに刺すGPUは元増田が書いてるように転送がむっちゃ遅くなるから、CPU・マザーボード・GPU全部で包括的な革新が起きないとPS4の構成に同じ価格帯で並ぶには5年程度じゃギリギリ無理。
GPU DirectもあくまでマルチGPU間の並列処理データ受け渡しのオーバーヘッドを無くす技術だから、普通のGPGPU処理でCPU・メインメモリ頼りの構図はnVidiaだけが頑張っても覆せない。
PS4や次世代箱に勝てる構成が近い将来に来るとしたらAMDのHSAかIntelのXeon Phi統合CPUがハイエンド向けに作られた時だけじゃないかな
PS4は主記憶にGDDR5を使ってきたので、同じ主記憶向けメモリという括りでDDR4 SDRAMを比較対象にした。
当然ながらPCでGDDRがメインメモリに使われる可能性はまずあり得ない。GDDRを使うとメモリはMBに直付けと言う選択肢しか無くなる他、特許の問題が絡む。モジュール開発を前提にコストを削減しているPCでは展開しにくく、そもそもメモリは直付けであるUltrabookやタブレットではこれを行かせるような設計がまず難しいのと、すでにDDR3で直面している発熱と消費電力の高さという問題が存在するためにGDDR5がメインメモリに採用される事はまず無い。
従って、主記憶の速度という単純な物差しを持ち出すのならば、GDDR5とDDR4 SDRAMを比較対象にした。
ちなみに
また、GPUコンピューティングの世界ではGPU間でメインメモリを通さずにデータ転送できる仕組みが現在進行中で、NVIDIAはCUDA5.0でGPUDirectと言う仕組みを導入しこれを実現した。これは一見するとDMAによく似た仕組みに見え、結果としてやっている事は確かに似ているのだが、Remote DMAといった代物で結構中身が違う。CPUはもちろん、メインメモリを通さずにGPU間でメモリ転送を実現してやろうというものだ。さらに、ここにもうちょっと賢いコントローラをはさんでやると言う事が考えられていて、これは実はAMDだけではなく、NVIDIAが従来やっていたGPUボックスというGPUをSLIして専用のコントローラ積んで、PCIeと専用のバスで繋ぐようなシステムを作っていたが、それの応用、あるいはIntelがXeonPhiでやろうとしている。
なので、メモリ帯域では
と言う事になる。
女には理解できないかもしれないけど、男は恋愛に憧れたりしない。
恋愛とか性欲というのは生理現象で、それ以上でもそれ以下でもない。
サメとシャチが闘ったらどっちが勝つかとか、そういうことを考えているときのほうがワクワクするし、スポーツカーや新しいCPUのスペックを眺めている時の方がドキドキする。
女って、女だろ?
京浜急行みたいに速く走ることが出来るわけでもないし、コーカサスオオカブトみたいな強さだってないだろ?
デートしたいなぁとか、セックスしたいなぁというのは、腹減ったとか、そういう感覚に近い。
さして深刻でないが、かといって我慢できるものではない。
好きとか嫌いという感覚もそれと同じだ。
女の人って性的な目でみられるのが嫌なのってどういう感覚なんだい?
逆に、金づるとみられてたって、バカと思われてたって、どうでもいいように思う。
というか、どう思われてるかなんて考えたことがなかった。
大嫌いと世界中の人に言われたってそんなに堪えないと思う。
割と人に嫌われるほうみたいで、何度か悪口を言われるのを耳にしちゃったりするんだけど、
ニンジンやピーマンを嫌う人がいるように、俺を嫌う人だっているんだろう、くらいに思うだけで。
あんまり気にならない。
逆に、
とちょっと申し訳ない気分になる。
もちろん、好かれたら嬉しいけど。
ちいと話がズレたけど、飯を食いたくなければ食べたくなるまで食べなきゃいい。
夜寝れなきゃ、寝たくなるまで寝なきゃいい。
それと一緒で、好きになる人がいないなら、好きになるまで好きにならなきゃいい。
好きになる時には好きになるし、セックスしたくなるときはしたくなる。
こればっかりは、相手がいるから、自分が好いたところで付き合えるわけでもなく、セックスできるわけでもないんだけど(逆レイプとかするなよ笑)、数打ちゃあたる。長い人生には、恋人になることもセックスをすることもある。
気にすんな。
切り口にもよるけれどそーでもない。
PS4のCPUとGPUの石の性能は、3年前のハイエンドとほぼ同程度だよ。ただ上にのっかるソフトが違うので効率面では、現在のミドルレベルのゲーミングPCぐらいにはなっていると思う。
一方メモリ帯域と言う面だと、2016年であってもPCは追いつけないはず。今年中に現在のメモリの次世代規格であるDDR4のモジュールが出回ってくるけれど、現状計画だとDDR4は最大で3200Mbps、メモリ帯域幅は最大で65GB/秒程度が限度だと思われている。一方、今回のPS4は帯域幅176GB/秒と言われているのでそう簡単には追いつかれないと思われる。
ただし、今のウルトラハイエンドのグラボでは、GDDR5を6GB搭載しているものが存在する。(※ただし売価10万以上)プロユースでは8GB搭載したものがあるし、GPUコンピューティング用のアクセラレータではさらに大量に積んでいるものがある。そしてPCの世界でもCPUとGPUの間のメモリ転送の遅さをどうにかしたいというアプローチは行われているので、どうなるかはちょっと未知数かな。
http://anond.hatelabo.jp/20130223090512
三行でまとめると
PSのビジネスモデルを振り返ってみるのだが、この切り口から行くとPSはSONYの半導体戦略、そしてSONYは製造業と言う性質とと切っても切れない関係がある。
利用上の注意
なおすべて妄想となっておりますので、これを真に受けて被った損害などについては一切責任を取れません。皆様におかれましてはその旨ご了解のうえご覧いただけますよう、よろしくお願いいたします。ご協力頂けない場合につきましては、いい歳こいたアラフォーの髭ヅラ男が涙目になると言う非常にウザイ状況が発生することとなり、誰も得をしません。ご理解とご協力をお願いいたします。
SONYがゲーム機を一緒につくろうと言って任天堂に近づいたものの交渉が決裂してできあがったのがPSであったわけだがこれが大ヒット。
さらにPSでは、内部で使われている半導体を自社設計・自社かそれに近いFabで作る事によって
など副次的な効果もあり、さらに「SONYの旗艦」といったイメージを作り上げることができた。この他に、CD-ROMを手がける部門や、SONYのCDプレス工場部門等々、PS景気により、直接的なPSによって生み出される効果以外に、PSという揺るぎない需要が存在する事で、設備投資などに積極的になれたといった効果がうまれた。
初代は始めどこまで意図されいたかは不明だが2台目ではそれらの経験が生かされる事となりより強化された。まず一番は半導体工場で有り、旺盛なその需要と、それによって得られた利益を投資に回し新プロセスを開発、シュリンクすることによって最終的な黒字を目指すことで赤字で販売をスタートすることとなる。
ゲームハードは赤字でも、ソフトが売れれば黒字。こんなの当たり前だろ、と言う話であるが、総合情報機器メーカであるSONYでは少し事情が異なる。これは、ソフトウエアライセンス事業による利益によって、間接的に半導体生産の設備投資を補填すると言う形を意味する。もちろんそれ以外にもSONYの製造部門にもPS2が赤字でも販売すると言う行為によってもたらされる間接的な利益が流れた。
ご存じの通り、PSは我が愛する芸術品たる至高のゲーム機Dreamcastを完膚なきまで叩きのめし世界最高の企業セガをプラットフォーム業から引きずり卸しパチンコ屋に買われる所まで追い込む等大成功をとげた。そしてゲーム機生産により、SONYの製造業部門を引っ張っていくという当初の見込みは大成功した。
PS3の時代になると、パソコンの旺盛な需要の元、急速に進化した集積回路は、プロセッサの新規開発コスト、さらに半導体のプロセス開発に必要な資金が膨大に膨らむという現実に、様々な企業が立ち向かうよう時代が来ていた。世界の巨人たるIntelと、それ以外という構図が生まれ、世界中でFabの統廃合が進んでいた。
その中で目をつけられたのがゲーム機という存在である。パソコンに対抗できるほどの膨大な需要を生むゲーム機は、薄利という性質を持ちながらも数が出るため、生産設備を拡大しやすくプロセス開発の資金を捻出する事に有利であった。さらにSONYは、ゲームハードウエアが、当時のパソコンなどに比べて圧倒的に高い性能を持っていなければ存在価値が無い、と言う観念を持っていた。これはかつて任天堂がもっていた思想であった。
さらにIBMなどの思惑とも一致、開発がされたのがCell B.E.であり、この存在がPS3を生んだ。そう、ここまで来てSONYは、半導体のためにゲーム機をデザインしたのである。
もちろんこの説にはいろいろな異論はある。しかし俺は順序としては、ソニーグループ全体の長期的な戦略にPSが生む半導体工場の増設という戦略が大規模に組み込まれていたのは間違いないのでは無いかとみている。そこで完成したマシンは、化け物であった。現在まで続く潮流であるGPGPU的な動作もこなすCell B.Eがもたらす高性能と、高い拡張性を備え、既にゲーム機では無いとまで言わしめるものができた。この性能は当時の最新鋭コンピュータを大幅に上回るものであった。
しかし……。GPGPUの概念は早すぎた。性能を引き出すことが、当人であるSONYでも難しかったのである。そしてこれはミドルウエアや開発ツールの乏しさにも繋がる。そのためスタートアップに失敗した。この失敗は、PSがゲーム機として優れていなかった、あるいは、他者装置に負けた、と言う意味で失敗では無い。製造業としてのSONYが、自社の思惑通りに事を運べなかったと言う事での失敗である。
結果SONYは、PS3の需要を当て込んだ生産設備をリストラ・売却するなどの対処をを迫られる。さらに韓国勢などの追い上げ、AV市場の急速な変化、SONY本体の体力の低下、パソコンの高速化などにも影響を受けることになる。
PS3そのものは、OSの改良、ミドルウエアや開発ツールの向上などにゆっくりではあるが立ち上がってきたが、製造業としてのSONYがPS3に期待した効果は得られず、ハードウエア屋、製造業がみた夢はここに破れた。
さらに時代は動き、集積回路は、Intelがプロセスで1世代以上先を行き、それ以外はすべて後から追うという構図が完全に定着してしまった。SONYも、SONYの半導体と言えば、集積回路ではなく画像素子、と言う時代が来て久しい。世界中で半導体製造業者の統廃合は進み、国内半導体産業は衰退した。新プロセス開発の難易度や、集積回路の大規模化から来る開発コストの上昇はいかんともしがたくなっていた。
ゲームが必要とするスペックはもはや飽和している。少しでもリアルに、少しでも高性能にと言う方面はすでにマニアのものだけになってしまい、それら需要だけで、そのとき販売されているパソコンを上回る高性能チップを開発、載せるコストを満たすことはできなくなっていた。具体的に言えば、ウルトラハイスペックの、GeForece GTX SLIクラスにも勝ちうるGPUを、専用設計でオーバーヘッドを極力少なくすることができるとはいえ新規設計することが難しくなっていたのである。さらにはゲーム機業界ではスペック競争を離れた任天堂がWii、あるいはDSを生み出し、ケータイ、そしてスマフォとと言う存在がカジュアルゲーム市場をかっさらうようになった。特に日本では据え置きゲーム機がリビングルームに置かれ、パーソナルな空間に置いてゲーム機は携帯ゲーム機になったのである。
そして決定的だったのが、ゲームエンジンの躍進と越境であろう。従来はゲームエンジンや製作環境はゲーム会社の門外不出のものであった。しかしそれらが会社を通じて流通し始め、さらには専門業者も現れるようになったのである。
家庭用ゲーム機と言えば、ゲーム機の性能を引き出すためにソフトごとにアセンブラで最適化チューニングを施す。それを行っても常に動作が一定になることがメリットとして、パソコンに比べてゲームは常に一定の動作をすることが担保できるためにゲーム製作に専念することができた。しかし、パソコンは十分に高性能になった。家庭用ゲーム機も十分に高性能になった。その結果、チューニングを行わなくてもそこそこの画面が作れるようになってきたのである。そこで余った能力はゲームエンジンのオーバーヘッドを許容するようになり、ゲームエンジンの躍進に繋がった。さらにゲームエンジンはプラットフォーム間の差異すら吸収し始めた。あるゲームエンジンを採用すれば、あまり手間をかけること無く、パソコン版、PS版、XBOX版、Wii版と複数プラットフォームで出せるようになったのである。これは、ゲームエンジンが新たなるゲーミングプラットフォームとして君臨する可能性を示唆していた。
しかし、チューニングなどといった、ユーザとは直接関係の無い部分に手間をかける必要が無く、作ったゲームがどこでも動く。これはクリエイタとしては非常にありがたい事なのでは無いか?
ビジネス書に出てくる例えがある。ユーザはねじ回しが欲しいのでは無い。ねじを回したいのである。同じように、客はゲームがしたい、もっといえば楽しいことがしたいのであって、別にゲーム機が欲しいわけでは無いのである。クリエイタはゲームを作りたいのであって、ゲームハードウエアを使いたいわけでは無いのである。ここに合致したのがクロスプラットフォームなゲームエンジンであり、そしてこれらはクリエイタに作りやすい環境を提供し始めた。さらにゲームエンジンは新たに現れたライバルである、タブレット/スマートフォンにも対応している。
しかしゲームエンジンの躍進は、プラットフォームビジネスの崩壊を意味したし、PS3は性能を引き出すには高いレベルの専門的チューニングが必要であった。しかしゲームエンジンはそこにコストを払う事を選択せず、PS3は高い性能を持ちながらも、それ以外のあまり高性能ではないプラットフォームとほぼ同等、せいぜい高解像度のテクスチャーに入れ替えられた程度のゲームしか提供されない、と言った事が発生するようになっていた。
そしてPS4が出た。
PS4は有り体に言って、x86-64アーキテクチャのコンピュータに、OpenGL/CL対応のGPUを搭載した、本質的にはそこらのパソコンと変わらない構成である。
さらに言えば、最新のCorei7+GeForce GTX…と行かなくとも、そこらのパソコンに較べ、性能は高くない。しかし、根本的にゲーム専用機が持つ、汎用パソコンには無い特徴
を備えている。さらには、GPUを扱いにくくする要因の一つとして上げられる、GPUとCPUのメモリ転送をほぼ考えなくて良いと言う仕様を打ち出してきた。これはCellとCPUのプログラミングが分断され、非常に開発を困難にしていたPS3の反省をダイレクトに生かしてきたと考えられる。これはAMDが出していたコンセプトだ、と話題に上がるが、あくまでもパソコンの話であって、ゲーム機の分野では少なくとも、PS2がプログラミングが困難な部分を、高速なバスで繋ぐことで隠蔽するよな仕様であったように記憶している。
さらにx86-64アーキテクチャにしたことで、ゲームエンジンがPC向けエンジンの次に、素早くPSにも対応できる素地を整えた。Power向けに施す必要のあるチューニングを不要にしたのである。従来はパソコンで開発されたクロスプラットフォームのゲームは、パソコン向けと、家庭用ゲーム機向けの2種類作られた。そして家庭用ゲーム機向けは往々にして、ターゲットとなるハードウエアの中で一番性能の低いところに合わせたデータで作られた。平たく言えばPS3の方がXBOX360よりもはるかに映像表現は優れているのに(※ただし使いこなせれば) XBOX360との差異はテクスチャやムービーの解像度程度の違いだけになってしまう事を意味していた。しかしx86-64にしたことで、家庭用ゲーム機向けに統一してダウングレードされたデータからPS版を生成させるのではなく、パソコン向けのデータから生成させた方が早いと言う状況を作り出し、他の家庭用ゲーム機にくらべてアドバンテージを得ようとしているのでは無いだろうか。これはPS VitaがARMを採用したことも同じ事である。
さらに、SONYは、PSVitaから進めてきた戦略として、自社による強力にプラットフォーム感の差異を吸収するミドルウエア群…これはゲームエンジンと読んでも良いのかも知れないが…を提供してくるだろう。x86ならば従来の資産を生かすこともできるし、世の中に出ているコンピュータ向けのライブラリも利用できる。急速に開発しやすい環境を立ち上げているのではないだろうか。これはゲームエンジンにより脅かされる、プラットフォームビジネスへの対抗措置でもあるだろう。
これにより「雑事に捕らわれること無く、ゲームの楽しさ・表現そのものに専念する」と言うクリエイタの夢を叶えるハードウエア、それがPS4であろうと思う。
平たく行ってしまうと、自社の半導体商売が死んだことにより、その死絡みから解き放たれたPSは、クリエイタ主導でゲームを作ると言う根本に立ち返って作ったのがPS4だ、と言う話である。
しかしこれだとハードウエア、製造業の夢はどうなってしまうのだろうか?そしてユーザは別にクリエイタの夢などはどうでもいい。下手をすると高性能なハードウエアを所有していると言う欲を満たせなくなる分だけこちらの方がまずいかも知れない。それをどうカバーするのか?と言う話になる。
SONYは、次世代戦略として明らかにソフトウエア重視に舵を切っている。SONYは今、収支から見ると製造業では無く金融業であるが、その次に利益を生み出しているのは音楽・映像ソフト部門とゲーム部門である。
まずはここを潰してしまっては会社として立ち行かなくなる。それはまずい。ではどうするかというと、従来の「製造業としてのSONYを強くするために、PSの需要を利用する」のではなく「コンテンツ・製造複合体としてのSONYの核にPSを据え、関連商品を生み出す形で恩恵を得る」と言う形に舵を切ってくることになる。PS3でも一部行われているが、たとえばPSのリモートプレイを可能にするパソコンやタブレット、PSを再生装置としてコンテンツを供給できるメディアサーバといった具合である。
しかしこれらに対応させるために大切なPS本体の魅力を失わせては困ると言う事は強く意識されなければならないし、意識されていくだろうと思う。
ユーザの夢は、将来的には作りやすいゲームプラットフォームが生み出す新しいコンテンツという形で満たされることになるだろうが、直近では、ソーシャルへの展開という形で示されていると思う。将来的にはいかにコンテンツを集められるかと言う事にかかっている。が、ぶっちゃけていうとユーザから見たら、これほど夢の無い話は無いと言わざるをえない。
今回発表されたタイトルのデモなどは実際にはチャンピオンで有り、実際にプレイして得られるのはPS3とそれほど感覚的に、革新的に良くなったと感じる部分は薄いと思う。この点で、PS4は、PS3と実働コンテンツはそれほど変わらないと思っている。マイナーバージョンアップ程度。パソコンがWindows XPで評価が固まったようなものである。これはおそらく次に発表される新型Xboxでも同じだ。任天堂は少し別格の応えを出したが苦戦している。
かつてセガが出した芸術品とも言える至高のゲーム機、DreamcastはOSにWindows CEを搭載した。プロセッサこそ独自であったがそれは当時のWIndows CEではあたりまえであり、むしろそこにWindowsと言う汎用のソフトウエアを利用したことで非常にゲームが開発しやすく、PCゲームが移植しやすい環境を作り上げた。それらはアーケードのnaomiプラットフォームや、ワンチップで埋め込まれたパチンコなどで今でも生き続ける。
任天堂がWiiUでコントローラに画面をつけDreamcastに追いついたように、SONYは、PS4で作りやすいゲーム機という点で追いついたと言える。
またしてもセガは早すぎた。時代がセガに追いついていなかったのである。Dreamcastはその名の通り「夢を投げる」存在であったのだ。
最初に言っておくと、増田はSCEが嫌いな方でPS3もVitaも持っていない。
そんな増田だが、PlayStation4発表でのハードウェアに対する誤解の数々を見てちょっとばかり怒りを覚えたので少し書いておく
いきなり「何が違うんだ?」と思う人や「何も違わないだろ?」と言う人も居るかも知れない。
だが後半を語る上でもこれは重要な話なので省略しないでおく。
最近のPCは当たり前のように64bitのメモリ空間を扱えるようになった。
この増田を読んでる人でも64bit OSを使っている人は少なくないはずだ。
これをもたらしたのは、x86 CPUを作ったIntelではなくx86互換CPUを作っていたAMDである。
じゃあIntelは何をしていたのかと言うと、64bit CPUを作っていた。x86を完全に捨てて。
Intelは「IA-64」という64bit CPUを開発して商品も出していたが、これは現在ではほぼ完全に消えている。
確かにIA-64は64bitをネイティブで扱えて「x86の古臭い負債」が全く無かった。しかし、現実世界はx86で作られた既存のソフトウェアを求めたのだ。ゲーム業界でも似たような話を聞いた気もする。
それに対して、AMDは「64bitを扱えるx86」を作ってしまった。これが「AMD64」であり、現在業界標準としてx86-64と呼ばれているものである。
知っての通り、x86-64は現在のIntel CPUでも対応している。AMDが作った命令を使わされる事になったIntelは何を思っただろうか。逆に、これまでIntelの命令を使ってきたAMDは何を思っていたのだろう。
PS3に搭載されていたCellは、非x86でスカラプロセッサのPowerPC CPU(PPE)と、複数のベクトルプロセッサSPEを組み合わせたヘテロジニアス(非対称)プロセッサだった。(スカラ、ベクトルについてはググろう)
スカラプロセッサが得意な処理、ベクトルプロセッサが得意な処理を両方とも高速に実行できる。それがCellの目指した「夢」だった。
スカラプロセッサとベクトルプロセッサのプログラム最適化は全く別の概念で、プログラマーにとっては野球とサッカーを同時にやらされるような物である。
しかも、スカラプロセッサとベクトルプロセッサの間でデータの交換もある。野球とサッカーのキャッチボールて。
スーパーコンピュータ「京」もスカラとベクトルの合わせ業で池田某氏に何度も叩かれるほどの超絶難産だった事は記憶に新し…いっけ?
それが原因でPS3の性能を最大限に引き出したソフトはほとんど存在せず、こともあろうにXbox360とのマルチソフトが溢れる結果となった。(ちなみに増田は360も持ってないのでエルシャダイをプレイ出来ていない、問題だ)
それに対し、PCの世界ではPS3・360が発売してしばらく後に新たなヘテロジニアスコンピューティングが生まれていた。
CPUに比べて進化が止まらないGPUをベクトルプロセッサの代わりとして使う試みだ。
GPUはスパコン用のベクトルプロセッサやCellのSPEと違い、最近のどのPCにも搭載されているので量産効果で割安というメリットがある。
DirectXのバージョンも2桁に突入し機能が増えるにつれて、「もうこれで計算すれば良いんじゃね?」となったわけだ。
結論から言うとこの試みは無茶苦茶ヒットした。近年開発されたTOP500スパコンでGPUが使われていないものを探すのが難しくなってきたし、
最近はPhotoshopなんかの比較的身近なツールもGPUコンピューティングに対応してきてヌルヌル動くようになっている。
しかし、そんなGPUにも欠点はある。「CPU・メモリから絶望的に遠い」のだ。
IBMが発明しMS-DOS・Windowsが動くことで爆発的に普及した今のPCは、GPUを外付けにすること前提で設計されていた。
DirectXやOpenGLのような例外を除いて、基本的に現代のOSはCPUとメインメモリでソフトを動かすように出来ている。
GPUも、一旦メインメモリ上でGPUのRAMに載せるためのデータを生成し、CPUから「GPU動かすよー」という命令を出さなければ動かせないのだ。
これはGPUにとって致命的すぎる欠点だった。これが原因で、遅さを跳ね返せる最新のミドルレンジ・ハイエンドのGPUでなければ逆にCPUより遅くなってしまうケースばかりだ。
現実的な理由で始まったGPUコンピューティングがぶち当たった現実的な壁である。
このGPUの欠点を克服する方法について、AMDはかなり前(少なくともGPUコンピューティングが流行るより前の2007年以前)から取り組んでいた。
GPUコンピューティングが遅いのはCPUから物理的に遠いため命令を送る時間が掛かり、メモリの扱いも異なるせいである。
CPUからGPUに命令を送る遅延を無くし、CPUのメモリとGPUのメモリを交換する時間も減らせばGPUコンピューティングのデメリットは消え失せる。
夢のある話だ。
しかし、AMDには発想と設計技術はあったがカネと製造技術はIntelと比べて絶望的に劣っていたため、
初めてのCPUとGPUを統合したプロセッサはIntelに先を越されてしまった。(IntelのGPUが絶望的に遅いからって実質出てないなんて言っちゃダメだ)
これにはAMDもかなり堪えただろう。けれどもAMDは戦略を曲げなかった。
IntelのGPUが絶望的に遅いのでほとんど意味は無かったが、少なくとも前世代のIntel GPUに比べると格段に実効性能が上がっていたのだ。CPUとGPUを近付ける統合には間違いなく意味があったということである。
AMDはCPUとGPUを同じチップにするだけでは無く、メモリ「アドレス空間」も一緒にする道を目指した。
こうなるとCPUの使っているメモリがGPUから直接扱え、GPUの使っているメモリがCPUから直接扱えるようになる。
これが実現するとCPUとGPUが完全なヘテロジニアスコンピュータに一歩近付くのだ。
2011年にやっとAMD初めてのCPU+GPUであるAPUを出せたが、メモリアドレス空間はまだ別々だった。
2012年になってもメモリ空間は別々のままだったが、AMDはARM(iPhoneやAndroidやWindows Phoneに載っているARMである)と合同でHSA(ヘテロジニアス・システム・アーキテクチャ)を推進すると発表した。
世の中の現実的な人々は笑った。「アーキテクチャだけを作ってもハードとソフトが出てこないんじゃ話になりませんよ」と。
同じ2012年、AMDは2013年中にHSAの第1世代製品を出すとだけ発表し2012年は終わった。
そして2013年2月21日(米国時間20日)、Sony Computer EntertainmentはPlayStation 4を発表した。
Cellはコケてしまったので載らない事は誰もが知っていたが、載っているハードウェアに一部の人が驚いた。
―HSAである。PC用のHSA対応APUがまだ正式発表されていない中で、なんとHSAを載せてきた。(2013年末発売だから当たり前だというツッコミは止めろ!)
CPUはx86-64のJaguar 8コア(ちなみにPC向けJaguarは4コアまでだ)、GPUはRadeon HD 7800相当でPS3と違いガチで1.8TFLOPS(理論上1秒間に計1.8兆個の小数点を含む計算を実行可能)のスペックを持つ代物だ。
このCPUとGPUは8GBのGDDR5メモリを共有して動作する。8GBと聞くと最近のPCから考えると少なく聞こえるかも知れないが、(わたしのメモリは16GBです)
GDDR5とはGPUの描画計算を速く済ませるために作られた超高速メモリであり、ご家庭のDDR3メモリとは比べ物にならない速さが出せる。
実際の所PS4がHSA対応かは正式発表されていないのだが、PC向けJaguarはHSA対応と発表されており、SCEもPS4をAPU(CPU+GPU)と呼んでいてこの変態メモリ構成とすると、発売までにクッタリでスペックダウンしない限りHSA確定と見て良いはずだ。
また、PlayStationはこれまで一度もx86系CPUを採用した事が無く、これが最初(で最g)のx86採用機となる。
Intelが初代Xbox(Celeron搭載)であっさり諦めたx86のゲーム機市場制圧の夢を、AMDが思いもよらぬ形で果たしたのだ。
これまでPCでしか発売されてこなかったDiabloが、x86-64のPS4向けに初めてコンシューマ版を発表した事もx86-64の採用が決してつまらない事ではなかった証だろう。(Diabloと戦うハメになるサードの方々にとっては非常につまらないが)
CPUとGPUの”フュージョン”…(HSAは以前はFusionと呼ばれていた。そういえばドラゴンボールの映画も今年やな…)
AMDが長年の間見てきた夢が、PS4で初めて現実世界に現れることになる。(※ただし次世代XboxもHSA採用でPS4より先に発売したりしない世界線に限る)
こんな馬鹿らしいほど夢が詰まったマシンを「x86搭載だからPCみたいで夢が無い」という一言で切り捨ててしまう人に増田は絶望した。
でも、それってユーザーの夢にどう繋がるの?
性能の引き出し易さがPS3と比べて格段に良くなるのでPS3版ラストレムナントや人喰いの大鷲トリコのような非情な現実が減る。以上。
今時のパソコンをいきなり与えられた人(普通はそうだけど)は、そもそもポインタなんて機能が何故必要なのか理解できないと思う。
JavaとかPerlとかVBとかは、扱いたいデータを直接切り貼りするだけでプログラムとして成立するし、それで十分なわけで。
そのレベルでコンピュータの仕組みや、メモリの使い方を理解する必要性は、普通は全く感じられないからね。
それにポインタを意識しながらプログラミングするというのは、前述の演算に必要なデータ構造に加えて、メモリ管理上のデータ構造も扱うという、2重のデータ構造を考えないといけない。
これはプログラム初心者には全く想像できない領域だし、そうそう簡単な事じゃないと思うわ。
ましてやC言語の*pとp[]の交換性が、基本環境依存のデータ型のバイト長をいちいち把握しながらポインタ演算してアクセスなんて面倒でしょうがないから結構必須とか、そもそもポインタ演算を使いこなせればハードのリソースをビット単位で搾り取れて、それをアセンブラよりはシンプルかつ抽象的に実装できるC言語は非常に効率がいいとか、まず理解不能でしょ。
そんなことが必要な分野が世の中にはあるという現実すら知らないだろうし。
尤もマイコンキットから入って「メモリにデータをロードして、そのデータのメモリ上の格納場所がCPUから分かるように(ry」というアプローチなら、ポインタを使う以外に方法が無いので嫌でも覚えるだろうけど。
見出しはこれ http://anond.hatelabo.jp/20121219191602
http://toro.2ch.net/test/read.cgi/unix/1288765389/232
232 :名無しさん@お腹いっぱい。:2012/03/25(日) 15:05:26.72 今月はじめ、職場に新しいPC(Pentium4の結構ハイエンド構成)が入りました。 多分私が運用保守をまかされそうな雰囲気です。業務的にとある構造分析や シミュレーションなど行う必要がありOSにオープン系を採用するのは 聞いていたのですが、搬入されたPCのダンホール箱に乗っかっていたのは UNIXのインストールパッケージでした。 「うへぇ~、よりによってUNIXかよ」 デバイスドライバがない、コマンドが変・オプションがない、X環境が古い、 今の奴は日本語入力大丈夫なのか(Wnn/Canna/kinput2)、将来の64bit移行はどうなのか、 今時のネットで必須のflashのプラグインは存在するのか不安はつきませんし、 非メジャーなのでネット上の情報も少なく調べるのも大変です。 おそらく導入に際して、大学など教育機関で最初にそれに触れて刷りこまれた人間が 強気の知ったかぶりをして発言権を得て「俺流」をつらぬき紛れ込ませたのでしょう。 昔、当時、唯一CADなどのエンジニアリング環境が充実していたUNIXは大学など 教育機関に浸透していて、日本のUNIX界に多くのバカを輩出しました。 これから私は、おそらくそういうバカが、makeしてもemacsが入らない、 TeXが入らない、コンソールでEUCは使えないのか、Rubyが使えないのかなどと、 サバ管気取りの偏ったどうでもいい我侭を言い出し、(だから鯖にするんじゃねーよ、 鯖の常識で話すなつーのに)それと戦わなければならないのでしょう。 そして時代によって決着している、過去10年のUNIX界隈のくだらないそれらの議論が 再現され、それに巻き込まれるのでしょう。もう今からうんざりです。 だからお願いです。教育現場ではPlamoでもDebianでもRedHatでもKondaraでも Slackwareでもなんでもいいですがメジャーかつ現行のLinuxにしてください。 教育機関で懐古趣味のバカを量産されると現場が非常に苦労するのです。
http://toro.2ch.net/test/read.cgi/unix/1355909018/4
4 :名無しさん@お腹いっぱい。:2012/12/19(水) 18:44:07.79 今月はじめ、職場に新しいPC(Core i7の結構ハイエンド構成)が入りました。 多分私が運用保守をまかされそうな雰囲気です。業務的にとある構造分析や シミュレーションなど行う必要があり、複数マシンでファイルを共有するのは 聞いていたのですが、起動したマシンの/etc/fstabの項目に書かれていたのは nfsという文字でした。 「うへぇ~、よりによってNFSかよ」 ファイルロックすると刺さる、ファイルを消したのに.nfsXXXが残る、 今の奴はACL大丈夫なのか、ファイルのCapabilityに対応してるのか、 今時のLAN上で使ってもセキュリティは大丈夫なのか不安はつきませんし、 ユーザーが減ってるのでネット上の情報も少なく調べるのも大変です。 おそらく導入に際して、大学など教育機関で最初にそれに触れてすりこまれた人間が 強気の知ったかぶりをして発言権を得て「俺流」をつらぬき紛れ込ませたのでしょう。 昔、当時、唯一ローカルディスクかネットワーク上かの区別なく透過的にファイルに アクセスできたNFSは大学など教育機関に浸透していて、日本のストレージ界に 多くのバカが輩出しました。 これから私は、おそらくそういうバカが、ファイルに書き込んだら所有者がnobodyに なっちゃったよとか、タイムスタンプがずれるよとか、NFSv4にしたらマウント できなくなったよとか、TCPよりUDPの方がオーバーヘッドが無い分速いはずだよね などと、鯖管気取りの偏ったどうでもいい我侭を言いだし、 (だからNFS鯖にするんじゃねーよ)それと戦わなければならないのでしょう。 そして時代によって決着している、過去25年のNFS界隈のくだらないそれらの議論が 再現され、それに巻き込まれるのでしょう。もう今からうんざりです。 だからお願いです。教育現場ではSambaでもNetatalkでもFTPでもなんでもいいですが 安定してユーザーが多いファイル共有システムにしてください。 教育機関で懐古趣味のバカを量産されると現場が非常に苦労するのです。
http://toro.2ch.net/test/read.cgi/unix/1351627596/3
3 :名無しさん@お腹いっぱい。:2012/10/31(水) 10:57:28.82 今月はじめ、職場に新しいPC(Core i7の結構ハイエンド構成)が入りました。 多分私が運用保守をまかされそうな雰囲気です。業務的にとある構造分析や シミュレーションなど行う必要がありOSに*BSDを採用するのは聞いていたのですが、 搬入されたPCのダンホール箱に乗っかっていたのはFreeBSDのインストールパッケージ でした。 「うへぇ~、よりによってFreeBSDかよ」 カーネルが変、日本語環境がない、ソフトが変・揃ってない、今の奴は 日本語文字コード大丈夫なのか(utf-8)、x86_64環境は大丈夫なのか、 今時のネットに繋いでもセキュリティは大丈夫なのか不安はつきませんし、 非メジャーなのでネット上の情報も少なく調べるのも大変です。 おそらく導入に際して、大学など教育機関で最初にそれに触れてすりこまれた人間が 強気の知ったかぶりをして発言権を得て「俺流」をつらぬき紛れ込ませたのでしょう。 昔、当時、唯一PC98環境が充実していたFreeBSDは大学など教育機関に浸透していて、 日本のFreeBSD界に多くのバカが輩出しました。 これから私は、おそらくそういうバカが、ポーツ(笑)でemacsが入らない、 TeXが入らない、コンソールでEUCは使えないのか、Rubyが使えないのかとかなどと、 鯖管気取りの偏ったどうでもいい我侭をいいだし、(だから鯖にするんじゃねーよ、 鯖の常識で話すなつーのに)それと戦わなければならないのでしょう。 そして時代によって決着している、過去20年のFreeBSD界隈のくだらないそれらの議論が 再現され、それに巻き込まれるのでしょう。もう今からうんざりです。 だからお願いです。教育現場ではUbuntuでもdebianでもFedoraでもRHELでも OpenSUSEでもなんでもいいですがメジャーかつ現行のLinuxにしてください。 教育機関で懐古趣味のバカを量産されると現場が非常に苦労するのです。
http://toro.2ch.net/test/read.cgi/unix/1209056071/887
887 :名無しさん@お腹いっぱい。:2012/10/21(日) 11:56:55.61 今月はじめ、職場に新しい組み込みマシン(ファン付きだけど結構省スペース構成)が 入りました。多分私が開発全般をまかされそうな雰囲気です。業務的にとある 構造分析やシミュレーションなど行う必要があり、プログラムにアセンブラを 使用するのは聞いていたのですが、添付のサンプルソースコードからチラッと 見えたのはsethi %hi(hoge),%o0という命令でした。 「うへぇ~、よりによってSPARCかよ」 長くなるバイナリーコード、奇数アドレスワードアクセス不可、使いにくい レジスタウィンドウ、今時の素早いコンテキストスイッチに対応できるのか不安は つきませんし、今の若者はこんなCPU使わないので人材も少なくソフト開発も大変です。 おそらく導入に際して、大学など教育機関で最初にSPARCに触れて刷りこまれた人間が 強気の知ったかぶりをして発言権を得て「俺流」をつらぬき紛れ込ませたのでしょう。 昔、当時、32bitCPUでRISCでM68K系よりも高速で動作したSPARCは 大学など教育機関に浸透していて、日本のCPU界に多くのバカが輩出しました。 これから私は、おそらくそういうバカが、16bitイミーディエイト値すら1命令でロード できかないのかよとか、関数呼出しのたびになんで約100バイトもスタックフレームが 要るんだよとか、フラグレジスタの読み出しがなんで特権命令なんだよとか、 %g0ってレジスタ値変わらないし壊れてるよ、初期不良で交換だよとか、 アセンブラ通気取りの偏ったどうでもいい我侭を言い出し(だからSPARC使うんじゃ ねーよ) それと戦わなければならないのでしょう。そして時代によって決着している、 過去25年のCPU界隈のくだらないそれらの議論が再現され、それに巻き込まれるの でしょう。もう今からうんざりです。 だからお願いです。教育現場ではi386でもi568でもi686でも x86_64でもなんでもいいですが現行のCPUにしてください。 教育機関で懐古趣味のバカを量産されると現場が非常に苦労するのです。
前のはこれ http://anond.hatelabo.jp/20121219191602
http://toro.2ch.net/test/read.cgi/unix/1036951410/601
601 :名無しさん@お腹いっぱい。:2012/07/10(火) 15:04:00.62 今月はじめ、職場に古いパソコン(i486DX2の結構ローエンド構成)が入りました。 多分私が運用保守をまかされそうな雰囲気です。業務的にとある構造分析や シミュレーションなど行う必要がありハードにパソコン系を採用するのは聞いていたの ですが、搬入されたパソコンのダンホール箱に印刷されていたのはPC-9801という 文字でした。 「うへぇ~、よりによって98かよ」 NetBSD/OpenBSDインストール不可、Solarisも不可、SATA-HDDからブートできるのか、 今時のLCDディスプレイにつながるのか、FreeBSD9.xは対応してるのか、 今時のネットに繋いでもセキュリティは大丈夫なのか不安はつきませんし、 非メジャーなのでネット上の情報も少なく調べるのも大変です。 おそらく導入に際して、大学など教育機関で最初にそれに触れて刷りこまれた人間が 強気の知ったかぶりをして発言権を得て「俺流」をつらぬき紛れ込ませたのでしょう。 昔、当時、唯一コンソールでの漢字ROMによる日本語表示ができたPC-98は大学など 教育機関に浸透していて、日本のパソコン界に多くのバカを輩出しました。 これから私は、おそらくそういうバカが、makeしてもemacsが入らない、 TeXが入らない、firefoxは使えないのか、Rubyが使えないのかなどと、 サバ管気取りの偏ったどうでもいい我侭を言い出し、(だから鯖にするんじゃねーよ、 鯖の常識で話すなつーのに)それと戦わなければならないのでしょう。 そして時代によって決着している、過去20年のパソコン界隈のくだらないそれらの 議論が再現され、それに巻き込まれるのでしょう。もう今からうんざりです。 だからお願いです。教育現場ではPC/ATでもSPARCでもPA-RISCでも PowerPCでもなんでもいいですがメジャーかつ現行のマシンにしてください。 教育機関で懐古趣味のバカを量産されると現場が非常に苦労するのです。
http://toro.2ch.net/test/read.cgi/unix/992942337/737
737 :名無しさん@お腹いっぱい。:2012/09/16(日) 16:27:31.40 今月はじめ、職場に新しい組み込みマシン(ファンレスの結構省電力構成)が入りました。 多分私が開発全般をまかされそうな雰囲気です。業務的にとある構造分析や シミュレーションなど行う必要があり、プログラムにアセンブラを使用するのは 聞いていたのですが、添付のサンプルソースコードからチラッと見えたのは LD A,(HL)という命令でした。 「うへぇ~、よりによってZ80かよ」 アドレッシングモード皆無、リロケート不可、使いにくいインデックスレジスタ、 今時の関数引数のスタック渡しに対応できるのか不安はつきませんし、 今の若者はこんなCPU使わないので人材も少なくソフト開発も大変です。 おそらく導入に際して、大学など教育機関で最初にZ80に触れて刷りこまれた人間が 強気の知ったかぶりをして発言権を得て「俺流」をつらぬき紛れ込ませたのでしょう。 昔、当時、8bitCPUでi8080上位互換でi8085よりも多くのツギハギ命令を追加拡張した Z80は大学など教育機関に浸透していて、日本のCPU界に多くのバカが輩出しました。 これから私は、おそらくそういうバカが、ADD A,(HL)はできるのにADD B,(HL)は できないのかとか、相対アドレスのCALL命令はないのとか、 スタックフレームポインタとして使いたいのにLD HL,SPっていう命令ないじゃんとか、 アセンブラ通気取りの偏ったどうでもいい我侭を言い出し(だからZ80使うんじゃねーよ) それと戦わなければならないのでしょう。そして時代によって決着している、 過去30余年のCPU界隈のくだらないそれらの議論が再現され、それに巻き込まれるの でしょう。もう今からうんざりです。 だからお願いです。教育現場ではi386でもi568でもi686でも x86_64でもなんでもいいですが現行のCPUにしてください。 教育機関で懐古趣味のバカを量産されると現場が非常に苦労するのです。
http://toro.2ch.net/test/read.cgi/unix/1011306728/134
134 :名無しさん@お腹いっぱい。:2012/07/15(日) 14:17:53.53 今月はじめ、職場に新しいPC(Core i7の結構ハイエンド構成)が入りました。 多分私が運用保守をまかされそうな雰囲気です。業務的にとある構造分析や シミュレーションなど行う必要があり、X Window System上のアプリケーションを 使用するのは聞いていたのですが、OSを起動して黒いバックに白い文字だけの 英語の画面に表示されていたのはlogin:というプロンプトでした。 「うへぇ~、よりによってxinit方式かよ」 CUIログインなんて古い、コマンド入力なんて古い、今の奴は日本語入力設定大丈夫 なのか(XMODIFIERS)、今時のマルチシート環境に対応できるのか不安はつきませんし、 xinitユーザーが少ないのでネット上の情報も少なく調べるのも大変です。 おそらく導入に際して、大学など教育機関で最初にxinitに触れて刷りこまれた人間が 強気の知ったかぶりをして発言権を得て「俺流」をつらぬき紛れ込ませたのでしょう。 昔、当時、X11で唯一$HOME/.xinitrcを手書きするというCUI的方法で環境設定できた xinit方式は大学など教育機関に浸透していて、日本のX11界に多くのバカが輩出しました。 これから私は、おそらくそういうバカが、GNOME/KDEはどうやって起動するのか、 ウィンドウマネージャを終了したらXごと落ちたとか、ck-xinit-sessionはないのか などと、X11通気取りの偏ったどうでもいい我侭を言い出し(だからxinit方式にするん じゃねーよ)それと戦わなければならないのでしょう。そして時代によって 決着している、過去25年のX11界隈のくだらないそれらの議論が再現され、 それに巻き込まれるのでしょう。もう今からうんざりです。 だからお願いです。教育現場ではgdmでもkdmでもwdmでも xdmでもなんでもいいですがグラフィカルなディスプレイマネージャにしてください。 教育機関で懐古趣味のバカを量産されると現場が非常に苦労するのです。
http://toro.2ch.net/test/read.cgi/unix/1094041299/383
383 :名無しさん@お腹いっぱい。:2012/07/12(木) 19:20:13.06 今月はじめ、職場に新しいPC(Core i7の結構ハイエンド構成)が入りました。 多分私が運用保守をまかされそうな雰囲気です。業務的にとある構造分析や シミュレーションなど行う必要があり、制御コマンドとしてシェルスクリプトを 使用するのは聞いていたのですが、そのファイルを開いて1行目に書かれていたのは #!/bin/tcshという文字列でした。 「うへぇ~、よりによってtcshかよ」 ファイル記述子のリダイレクト不可、クオートのネスティング等に無理あり、 今の奴でさえシェル関数は使えないし、パイプラインの終了ステータスもおかしいし、 今時の担当者が扱ってセキュリティは大丈夫なのか不安はつきませんし、 スクリプトとしてのcshは嫌われるのでネット上の情報も少なく調べるのも大変です。 おそらく導入に際して、大学など教育機関で最初にcshに触れて刷りこまれた人間が 強気の知ったかぶりをして発言権を得て「俺流」をつらぬき紛れ込ませたのでしょう。 昔、当時、シェルで唯一aliasやhistoryやジョブコントロールの機能が使えた cshは大学など教育機関に浸透していて、日本のシェル界に多くのバカを輩出しました。 これから私は、おそらくそういうバカが、$*でスペース入りファイル名が扱えないとか $<でファイルから読めないのかとか、if文の条件式のコマンドでリダイレクト できないのかなどと、シェル通気取りの偏ったどうでもいい我侭を言い出し (だからcshスクリプト書くんじゃねーよ)それと戦わなければならないのでしょう。 そして時代によって決着している、過去25年のシェル界隈のくだらないそれらの議論が 再現され、それに巻き込まれるのでしょう。もう今からうんざりです。 だからお願いです。教育現場ではbashでもzshでもkshでもashでも Bourne shでもなんでもいいですがBシェル系のシェルにしてください。 教育機関で懐古趣味のバカを量産されると現場が非常に苦労するのです。
続く。
あけおめ!今年は巳年。へび。へびと言えばPython。そう今年は全てのwebエンジニアがPythonを勉強する最高の環境が整った年なのです。
必要です!必要だと思います。もはやPythonはwebエンジニアにとって必修言語となりつつあると思います。Linuxの多くの箇所でシステム言語として用いられ、可読性の高さから多くの技術系書籍のサンプルコードとして用いられ、科学技術系分野におけるエコシステムの充実っぷりはますます磨きがかかっており、様々なライブラリがどんどん出てくる現状を「Pythonわからないから自分には関係無い」と遠巻きに眺めるのはもったいないです。
あなたが既に他の言語に慣れ親しんでいるなら、特にRubyなどに精通していれば「1週間」で基本的な読み書きは出来るようになるでしょう。そのくらいPythonは敷居の低い言語です。またweb上のチュートリアルドキュメントが大変に充実していますので(もちろん和訳済み!)費用0円で勉強開始できるお手軽言語でもあります。
これは大変に悩ましい問題で、自信を持ってお薦めできるバージョンが無いのが残念な現状です。2系と3系は特に文字コード周りを中心に言語体系にそれなりの差があり、日本語を扱うエンジニアにとっては悩ましい問題です。結論としては「どちらも読み書きできる」ようにした上で「3系で書く」ですかね。2と3の違いを理解しておかないと必ずどこかで躓きます。特にweb上の情報はまだほとんどが2系ですが、ぱっと見て2と3のどちらのバージョンで書かれた情報なのかを判断できないと多くのweb上の情報を利用できずにもったいないです。
先述しましたが和訳済みのチュートリアルが充実しているのがPythonの特徴でもありますので、まずは目を通す事をお勧めします。
ぜひ超充実したドキュメント群を覗いてみてください。「チュートリアル」を読めばだいたいの言語仕様がつかめるはずです。「ライブラリリファレンス」はあなたの最高の辞書となるでしょう。
その上で、やっぱり書籍で勉強したいということでしたら以下の本がお薦めです。
・プログラミング自体が初めての人向け
・他言語を既に知っている人向け
みんなのPython 第3版(柴田 淳) ・・・2版と3版で大きく内容が異なります 2版はPython2系、3版はPython3系を中心に解説
・進んだトピックを扱う中級者以上向け
pythonはインデントの存在があるので無機能エディタで大規模なコードを書くのは案外骨が折れます。贅沢系IDEの代表格はPyCharm(有料$99)でMac,Windows,Linuxの3プラットフォームに対応しており、一つのアカウントでいくつものマシンにインストールできます(同時に使う事はできない)。30日間の無料トライアルもありますしトライアル期間が過ぎても一回あたり(たしか)5分ぐらいなら継続して使えます。無料IDEだとEclipseプラグイン、Netbeansあたりでしょうか。Netbeansは公式開発は既に終了しておりあまり安定していません。
大規模な開発ならDjangoが第一候補。歴史が長いフルスタックなフレームワークですがまだ正式版がpython3系に対応していない。最近勢いがあるPyramidは3系に対応済み。各webフレームワークについては各開発者同士が「筋が悪い」「Pythonとしておかしい」「トレンドから3年は遅れてる」などとガチンコで思いの丈をぶつけ合っている以下の記事も参考にしてください。http://www.atmarkit.co.jp/news/201209/24/pycon.html
とりあえず最低でもDjangoとPyramidは両方使ってみてから自分にあった方を選択するといいと思います。
・Numpy/Scipy
科学技術系の人が好んでpythonを使う理由の一つがNumpy。数値行列計算を内部でCを使って計算するために非常に高速。インターフェイスは書きやすいpythonだけども実行速度はCネイティブ並みというとてもありがたいライブラリです。現在のPythonの盛り上がりに間違いなく大きく影響しているライブラリ。
・nltk
言語処理で使われるライブラリ。英語がベースとなってますが工夫すれば日本語でも全然使えます。参考文献 http://nltk.googlecode.com/svn/trunk/doc/book-jp/ch12.html
・multiprocessing
並列処理ライブラリ。CPUのマルチコアを全て使い切って無駄無く高速に処理を行いたい時に重宝します。個人的に大好きなライブラリ。頑張ればちょっとした分散並列システムも作れます。このライブラリのお陰で自宅にある10台*(擬似)8コアでお手軽python並列処理クラスタを30分ぐらいで作る事ができました。