HTTPの教科書を読んだ

HTTPの教科書
HTTPの教科書

時間があり余っているので、積み本になっていたHTTPの教科書を読んだ。

2013年に書かれた本ということもあり、HTML5やHTTP/2には対応していない。
本のタイトル通り、実践的な内容ではなく「教科書」としての意味合いが強く、HTTPとHTTPを実現する技術について浅く広く触れられている。

Webサイトってどうやって動いているの?くらいの興味は解ける。

まぁ、今ならHTTP/2に対応しているような書籍の方が良い気はする。

Posted in Network.

未来に先回りする思考法を読んだ

未来に先回りする思考法
未来に先回りする思考法

未来に先回りする思考法を読んだ

いろいろモヤモヤしていて、キャリアを考える参考に読んだ。
基本的に自分の価値観の中で生きている人間だが、そうではなくてもっと大きな視点で未来を考える必要があるなと思った。

自分のいるスマホゲーム業界も、コンシューマゲームの歴史を辿っているとよく言われる。
PlayStationMobileは流行らなかった(僕的にはちょっとはやすぎた)けど、任天堂がDS系とは別で、端末+専用ストアでガチなの出してきそうな気はする。

はじめに

社会の変化を点ではなく、一本の線として考える。

第1章 テクノロジーの進化には一本の「流れ」がある

テクノロジーは人間を拡張するものである。いずれ人間に教育しはじめる。

人間は課題を解決するテクノロジーを発明します。そして時を経るにつれそのテクノロジーは社会構造に深く組み込まれていき、いつしかテクノロジーの存在自体が人間の精神や行動を縛るようになります。

第2章 すべてを「原理」から考えよ

国家の中だけで起こっていた変化が、テクノロジー(インターネット)の進化でどんどんボーダーレスになり、世界の変化になっている。
その点において、自国以外への影響力の弱い国家よりも、企業のほうが今後重要視されていくのかなと思わされた。

日本からイノベーションが起こりにくいのは、イノベーションをする「差し迫った必要性」が日本社会に存在しないのです。

その「必要性」をより効率的に満たすことのできるテクノロジーが普及したとき、社会システムに変化が生じます。

今の時代に当然とされているものを疑うことができるという能力は、未来を見通すうえで重要な資質です。

国家は税金をもとに国民の需要を満たしますが、民間企業は資本主義の原理の中でユーザーの需要を満たしている。

より効率的でよりスピーディに資本を増やしていく方法を探していくと、経済の中心は農耕や工業から、金融や情報通信の非物質的な分野に移っていくのが必然的な「流れ」です。

これまで国家が行ってきた膨大な情報の管理も、民間企業や個人がつくったシステムで同じことができてしまう時代です。

場合によっては、国家よりも民間のほうが効率的かつ低コストでできてしまう業務は多数存在しています。

実際はビジネスお政治も、目的はまったく一緒で、そのアプローチが異なるだけです。何かに困っている人たちのニーズを汲み取り、その解決策を提示するというプロセスは共通しています。

第3章 テクノロジーは人類の敵なのか

テクノロジーの進化の速さを感じ、本当にターミネーターのスカイネットのようなものが生み出されるのではないかと思わされた。

今後、テクノロジーが発達すればするほど、ユーザー1人ひとりの特徴に合わせた(パーソナライズされた)サービスが提供される。

パーソナライズは利便性をもたらす一方、行きすぎれば新しいものとの出会いをなくしてしまう可能性があります。

企業の80%のリソースを経営陣の意思決定どおりの仕事に費やし、残りの20%のリソースを社員の意思決定に任せる。これにより、企業全体がおかしな方向にならないようにバランスをとっているのです。

第4章 未来を先回りする意思決定法

WindowsとMacの関係と、AndroidとiPhoneの関係のパターンの話。
「成功しないのでは?」と思っていたが、過去のパターンから成功する可能性が高いことがわかり、データを信じて成功した事業の話などが面白い。
自分の許容範囲を超えて未来は進んでいくから、常識にとらわれず、パターンを見極め、かつ予測を裏切られることは常にあるので構えず許容することが大切だと思わされた。

時代の急速な変化によって、かつで自分が選んだ道が最適解ではなくなってしまうということはたびたび起こります。

彼らが共通してもっているのが、「世の中の流れを読み、今どの場所にいるのが最も有利なのかを適切に察知する能力」です。

自分が持っている手持ちのカードをきちんと把握し、電車が来るまでの残り時間の中で、足り以内条件を揃える必要があります。

将来的に新しい情報が得られるであろうことを考慮に入れた上で、一定の理論的な矛盾や不確実性をあえて許容しながら意思決定を行うことが、未来を先回りするための近道です。

Posted in 読書.

ATeam Tech 第1弾

ATeam Tech 第1弾

2015/10/21

ユニゾンリーグ

  • ゲーム概要
    • 最大10vs10で同時プレイ可能
    • 200万DL
  • 要件定義
    • リアルタイム通信
    • ワールド分割しない
    • サービス停止せずにUPDATE
    • 通信切断でも途中から再開可能
  • システム全体
    • クライアントは最低限の暗号化
      • ゲームロジックは全てサーバー側
        • だからサーバーで常にデータチェック(チーと対策)
      • データの2重送信をチートとみなす
    • 開発環境
      • クライアント
        • cocos2d-js
          • C++
          • JavaScript
        • VisualStudio, Eclipse, NDK, XCode
      • サーバー
        • Vert.x 2.1.6
          • Java
        • Ethna
          • PHP
        • Openfire
        • Eclipse, MariaDB, Apache
    • サーバーサービス
      • ニフティクラウド
    • 通信方式
      • WebSocket + MessagePack
        • 双方向通信の実現
        • パケットにマスクがかかっている
        • データ量の圧縮
    • サーバー構成
      • LoadBalancer → Apache →
      • WebSocket Vert.X → Database
      • Static LoadBalancer→Nginx →
    • データベース
      • Master/Slave
        • Slaveは「APP」と「Backup&KPI」で2種類使い分けている
        • ユーザーの水平分割と、機能の垂直分割も行っている
        • ユーザーデータはInnoDB、ログデータはBlackhole
    • Vert.X
      • イベント駆動型
      • 非ブロッキングI/O
      • 並列処理モデル
        • C10K問題
      • イベントバスによるModule間の疎結合
      • 別サーバーのインスタンスとCluster化
      • スケータブルなシステム
    • Verticle
      • Vert.xでの実行単位のこと。
    • ノンメンテナンス
      • Verごとにルームを作り徐々に新しい方に寄せていく
    • サポート対応
      • ログデータはデータベースに保存
      • 最低2ヶ月間保持
      • From/Toユーザー通信履歴(txtファイル)
        • 1日50GB
        • 1時間毎にrotate
    • まとめ
      • リアルタイム通信
      • ワールド分割しない
      • ノンメンテナンス
        • Room分割
      • 通信切断しても途中から再開可能
        • ロジックをサーバーに

ATeamの開発環境

  • 隔週でエンジニア向け勉強会(業務時間内)
  • Pチーム(勉強会)
  • サマガ(社内技術メルマガ)
  • 週刊雑誌の付録式ネイティブゲーム開発

感想

  • Vert.xは初めてきいたなー
Posted in 勉強会.