ぱろっと・すたじお

技術メモなどをまったりと / my site : http://parrot-studio.com/

Developers Summit 2012 1日目まとめ

今年もまずはメモだけまとめておいて、
後で細かいところを書き直します...φ(・ω・`)

全体

  • 雅叙園は相変わらずの場違い感
    • おばちゃんがいっぱいや・・・
  • 結果的にC会場=Webばかり聞いてしまった
  • デブサミ10周年記念本を買った∠( ゚д゚)/


100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊

100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊

16-C-1 HTML5の今と未来 〜HTML5との正しいつきあい方〜 by 羽田野 太巳 氏

  • スライドがWin8+IE10で作られているΣ(・ω・ノ)ノ
  • しかも、iOSSafariからWebSocketsで操作
    • 加速度APIとかも駆使
  • HTML5でふりがなも正しく書けるように
  • rubyタグ
  • HTML5 = Markup + API
  • そのAPIが莫大
    • Markupの本は600Pだが、APIの本は700Pでも書き切れてない
  • そもそも、Web=ドキュメント
  • HTML4の勧告は1999
    • 10年も変わってなかった
  • その間の「Webの進化」=「プラグインの進化」
  • それが「一部」はHTML5「でも」できるように
    • 全てではないので、プラグインが不要ということでもない
  • HTML5への流れ
    • AppleiOSが出現
      • プラグインが使えず、HTML5を強制される
    • AdobeがモバイルFlashを中止
    • AndroidChromeでプラグインが使えなく
      • デフォルト化する?
    • MSもWin8-Metroで全プラグインを廃止
    • もはやHTML5なしは考えられない
  • 1999年:日本でi-mode
  • 2011年:世界のあらゆるデバイスがWeb化
  • HTML5がOS的な役割になる=プラットフォーム化
    • OS -> ブラウザ=APP基盤 -> APP
    • ファイルAPI/オフライン
    • WebSockets=新しいプロトコルの定義
    • デバイス系API
      • カメラ / 加速度等
    • モバイル系API
      • バッテリー / ネットワーク状況
  • マルチデバイス化
    • 提供側:サービスのクラウド化
    • ユーザ側:いろいろなもので同じものを見たい
  • アプリから生まれる雇用
    • 新規だけでなく移行も含む
  • 社内システムも個人デバイスへ
  • 一方で、ネイティブAPPのコストは高い
  • HTML5 + CSS3 + JSで共通化
  • HTML5からNativeへの変換
    • PhoneGapとかTitaniumとか
  • Opera Wigets
  • ChromeOS -> WebがNative
  • WIn8-Metro -> WebがRuntime
  • 一方で、日本では「年賀状」の需要が無視できない
    • ソフトウェアとプリンター
      • これをWeb化していける?
  • ブラウザのパフォーマンスはうなぎ登り
  • デバイスも進化
    • CPUのマルチコア化 / 大型タブレット機器
  • 映像系サービスにおけるデバイス比率
    • 家電系70% PC/Mac30%
    • ただし、映像系=TVで見るため、特殊な例
  • POS端末等も汎用タブレットが使われ出した
    • 専用端末はお高い
    • ITmediaの記事にもあったはず・・・
  • TVもタブレット的に
    • ただし操作はあくまでリモコン
    • Opera TV Store
      • Operaが売り込み中のプラットフォーム
      • GoogleTVみたいなもの?
  • ACCESS社の製品
  • デジタルサイネージ
    • 汎用タブレットを看板に
  • ガラスや平面のタブレット化
  • すでに実際の製品もある
    • 空中ディスプレイ
      • 日本の会社
    • ガラスディスプレイ
  • HTML5だけが進化してもできないこと
    • 放送との融合
    • モバイルOSの進化
  • Webがあらゆるデバイスに広がる自体
  • 言い換えれば、Web屋があらゆる分野で活躍できる時代
  • "Red Pill"

16-C-2 大規模化するピグライフを支えるインフラ 〜MongoDBとChefについて〜 by 桑野 章弘 氏 / 並河 祐貴 氏

  • Amebaピグライフの話
    • 農園をいろいろやる?
  • 会員360万 / 同時接続20万
    • ROの10倍以上・・・?
  • Flash / Node.js / MongDB
    • FlashからWebSocketsで接続
  • MongoDBを選択した理由
  • 開発スピード
    • JSONでデータをやりとり
    • スキーマレスなので仕様変更に強い
  • 冗長化 / スケール
    • DataをChankに分けてShardする
    • Server / Controller / Nodeの連携でデータを管理
    • Nodeが相互に監視
    • Primaryが落ちたら投票アルゴリズムで昇格
      • See:Googleを支える技術
  • 実際の運用
  • 全部で140台
  • mongos
    • Serverに該当?
    • スケールしない
    • 各APサーバに
  • mongoc
    • Controllerに該当?
    • (管理系なので)スケールしない
    • 普段は低負荷だが、障害時に跳ね上がることが
  • mongod
    • DataNode
    • I/Oの負荷が大きい
    • (現状では)グローバルロックがかかるため、マルチコアは無意味
      • グローバルロック=Node全体をロック?
      • 後のバージョンでデータ単位のロックに変わるらしい
    • メモリは多ければ多いほどいい
      • Indexはメモリに載せるようなので、足りないと(゚д゚)マズー
    • Indexが使える
      • B-Treeらしい?
  • バックアップ
  • Chankの偏り
    • データの「アクセス頻度」は考慮されなかった
    • ゆえに、特定のNodeの負荷が上がることが
    • Chankの移動がサービス停止レベル作業
    • 2.0系からアルゴリズムが良くなったらしい
  • バグ
    • 障害時にmongocが超負荷
      • 修正されたらしい
    • レプリカの問題でServerがダウン?
      • メモに書いた字が読めぬ・・・
  • サーバ管理の話=Chefの話
  • サーバは全体で240とかのオーダー
  • そこに30台の追加を短期間でしたり
  • そこの作業をあらかじめ自動化しておく
    • 手動では必ずミスがあるのと、時間がかかる
  • 構造
    • Node:管理対象のサーバ
    • Role:サーバの役割・グルーピング
    • Cookbook:設定のまとまり
      • Gitの/Rubyの/nginxの・・・
      • 設定とかも
      • アンインストール等の記述を忘れがち
    • Roleは複数のCookbookを保持
    • NodeはRoleやCookbookを持つ
  • 問題点
    • サーバのセットアップがめんどい
    • 「名前」が一般的すぎて検索しづらい
      • Chef Recipeとかで料理が出てきたり
    • dry-runがない(テスト実行できない)
  • サーバ増設手順
    • Chef-serverに設定追加
    • NodeをPXEブート
    • OSをネットワークインストール
    • ついでにChefクライアントも自動で入れちゃう
    • 自動でServerを叩かせてセットアップ
  • 今後
    • クラウド化
    • AmazonならAMIを事前に準備する手も

16-C-4 次期Internet Explorer、IE10とHTML5 API by 春日井 良隆 氏

  • C-1とかぶっている話は割愛Σ(・ω・ノ)ノ
  • MSもW3C / IETF / ECMAに協力
  • IE9HTML5対応を始めたが、IE10ではさらに推し進める
  • 一方で、「IE」としてのポリシー
    • あまりリテラシーが高くない一般ユーザが多い
      • 頻繁に仕様の入れ替えをすると混乱
    • 企業ユーザが多い
    • 「安定」が最優先
  • デモサイトで実装状況が確認可能
  • GeoLocationAPIを使ったアプリの例
    • 4sqと組んで、チェックインユーザをビジュアル化
      • デフォルメされた街で、部屋の「中」をみたり
  • 後半はWebSockets / FileAPI / IndexedDBのデモ
  • WebSocketsのデモ
    • 黒板アプリ
    • Node.js / SocketIO / Canvas / WebFonts
    • 過去のデータ取得やブラウザ間の同期デモ
    • Win8-IE10 と Win7-Chrome
      • 操作ログをSocketでやりとしているらしい
  • Node.jsは「速い」
    • 実行速度が
    • 開発速度が
      • APIがよくできている
  • IndexedDBのデモ
    • RSSを取得してローカルDBに保存
  • SQLアクセスの仕様はなくなったらしい
    • それでいいと思うけど、あいぽんの本で使っていた気が
  • 当初Offlineに対応する予定が、キャッシュ機能にバグが
  • 非同期の設計は大変
    • コードも増えるしね・・・
  • DBの中を見るツールがない
    • IEのBlogにあったツールが「多少」役に立った?
  • FileAPIのデモ
    • もぐじろう(くじら)にファイルを食わせるデモ
    • CSS+JSでアニメーション
    • 画像を食わせると色を分析
    • テキストを食わせると中身を表示
    • 音楽を食わせると流す
      • 「叩く」と止まるΣ(・ω・ノ)ノ
    • 動画を食わせると、そばにあるTVで再生
      • でも不安定
      • 何度かやったら成功
  • URL.createObjectURL()
    • ファイルの「実体」ではなく「参照」を取得できる
      • IE10にはこれが実装済みだった
      • 「実体」を取得するのであれば、動画とかでかすぎて無理
    • ゆえに、ファイルタイプに合わせてAPIに参照を食わせるだけ
  • どの技術を使うか、という判断
    • Canvas / SVG / DOM+JS / DOM+JS+CSS
    • DOMも意外と速いので、Canvasは部分的でもなんとなかる?
  • デザインの話
    • 固定ではなく、動的サイズなので、動かしてみないとわからない
    • 動かしながら画像をいじって差し替え
    • デザイナーと開発者が密にコミュニケーションを取る必要あり
  • "HTML5 Native to Windows"
    • ランタイムとしてのHTML5 on Metro
  • 月曜に何か発表がある・・・?
    • Windows Developer Days
    • Bingで"MS"を検索!
      • この際Google検索でもいいらしいΣ(・ω・ノ)ノ

16-C-5 JavaScript 最新事情 — 開発者なら知っておきたい次世代 JavaScript —by 浅井 智也 氏

  • JSの仕様に関する話
    • HTML5の話ではない
  • JSの歴史
    • 1995年誕生
      • 10日でプロトタイプΣ(・ω・ノ)ノ
      • ブラウザで動くSchemeのはず・・・だったの・・・だが・・・
    • 1996年JScript
    • この辺で標準化しないと(゚д゚)マズーという話に
    • W3Cに提案するが蹴られる
      • NetscapeW3Cの仕様をガン無視だったかららしい
    • ECMAScriptとして標準化 -> 3rdへ
    • 4th と 3.1で対立
      • 4th は「本来のJS」として非互換
      • Y!とかMSが反対して頓挫
    • 3.1 -> 5thが現在
  • 5thの仕様
  • Native JSON
    • JSONの処理をNativeでやる
    • parserで悪さできなくなる
    • まだまだバグっぽいものがたくさん
  • Array Extra
    • Arrayに関数型にありがちなメソッドを追加
    • forEachとかmapとか
  • Function.prototype.bind
    • thisを固定した関数呼び出し( ゚д゚)o彡゚
    • カリー化も可能
      • 部分的に引数を渡した新しい関数を定義
  • Strict Mode
    • 好ましくない記述をエラーに
    • 6thではこれ前提の仕様がたくさん
    • functionのスコープでも使える
      • 小さい単位で使っていける
  • Getter / Setter
    • プロパティのget / setを定義?
  • seal / freeze
    • sealはプロパティの追加削除を禁止
    • freezeはプロパティの値そのものも変更不可
  • 次世代:6th
    • もっと書きやすく
    • ライブラリの充実
    • テスト可能な仕様に
    • etc…
    • Simple Maps
    • Simple Sets
    • Weak Maps
    • Proxy
    • const
      • 定数・・・のはずだが、現在の実装だと遅くなる
      • 時期尚早
    • let
      • blockスコープの導入
    • 分割代入
    • for-ofループ
    • 内包表記
      • Pythonにあったような?
      • あそこまでいくとまんま数学(lll゚Д゚)
    • イテレータ / ジェネレータ
    • Typed Array
      • 型チェックをしないので処理が速い?
    • 多言語対応
      • MSが(業務系で使うので)提案しているっぽい
  • JSは言語として大人に
  • Java=親を超える
  • 質疑
    • CoffeeScriptとの絡み
    • コンパイル時に元のソースを参照できる仕組みを追加するらしい
      • JS本体側なのかCoffee側なのかが聞き取れなかった(´-ω-)

16-B-7 デブサミオフィシャルコミュニティから選出のLT大会2012

  • 今回も3分半でドラ
  • 人妻ドラ娘
    • A会場は女子大生
    • B会場に来た人は人妻好き認定されてしまったΣ(・ω・ノ)ノ
  • OSS COBOL WG
  • CouchDB JP
    • 意外とみんなCouchDBを知らないΣ(゚Д゚)ガーン
      • 10/300くらいの知名度
      • あれすごくいいのに・・・
      • 以前評価したとき気に入ったけど、あの時は要件にあわなかった
    • オライリー本の翻訳
    • CouchDBの特徴について駆け足で説明
    • これ単体でBlogくらいは余裕でいける
    • モバイル版もできた
  • DevLOVE
    • さすがLTの総本山、とても安定
    • カンファレンスの参加者が160人規模に
    • 一方で「闇」がある(((((( ;゚Д゚)))))
    • 「行動がない」「言葉だけ」
    • 裏方が行動しないのに、参加者が動くのか?
    • 可視化がいる
    • 「Blogを書くまでが勉強会です」
      • 書いてるよ(`・ω・´)
  • 日本Grails/GroovyUG(JGGUG)
    • デブサミ2009で誕生
    • Groovy関連の技術を勉強
    • 合宿とか電子書籍作成とか
    • 「猫アイコン」「おっさん対策」「サブカル」が必須らしい
  • オブラブ
  • JAZUG
    • JAZ = Japan windows AZure
    • 女子部あり
    • クラウド系のイベントたくさん
    • クラウディアさん
    • 最近はAzureでHadoop/Java/PHPが動く
  • TIDAコンソーシアム
    • 沖縄県の補助で3年活動中
    • 最初説明がよくわからなかった
    • 問い合わせやクレーム等、意見を分析するシステム?
    • 3:30しかないのにデモをやるという暴挙
      • 早く、早く!Σ(゚Д゚;≡;゚д゚)
  • AppInverntorUG
    • ノアの箱舟作戦
    • 昨年末のGoogleLab終了から、MIT移転まで空白期間が
    • その間ユーザでサーバをどうにかしましょう的な話
    • Buildサーバがえらい重たいので、無料クラウドでは厳しいらしい
    • 支援企業のおかげで限定的に使える
    • 申請すれば使えるらしい
  • こみゅぷらす
    • たぶん、一番うまかったLT
    • いい話だけど速すぎたので、資料を見たい
    • 「教わることが大事」
    • 「この場にいることが大事」
    • 理解度をテストする
      • 他人に説明できる?
      • 現場でできる?
  • Hack For Japan
    • 3/11からもうすぐ1年
    • しかし「全く終わっていない」
    • ITで何ができるか?
    • 刻々と変わる事態に、既存のやり方は通じない
  • remembAR
    • Androidアプリの話
      • というか、コミュニティなの・・・?
    • いつどこで誰と会ったか、カメラで管理できるアプリ
    • 顔認識でユーザ情報を引っ張り出してくれる
    • アイコンから選択も可
    • 海外でも紹介されているらしい
  • 東北デベロッパーズコミュニティ
    • 3/11で塩釜の自宅が海に
    • 3/11以降、仙台で勉強会が激増
    • 7月のデブサミ東北で一気に増加
    • 「ダチになろうぜ」というのはライダーでいいのかしら・・・
      • 見てないのでわからぬ
  • アジャイルプロセス協議会
    • 企業の集まり?
    • 地区活動とか会誌とか
    • 4コマをぶち込んできた
  • TDD研究会
    • 論文を発表したりとか
    • TDDをやっていて良かったことをTwitterで募集
    • Togetterにまとめられている
      • (あとでURLを探す)
  • コワーキングJP
    • co-working
    • 同じスペースで一緒に仕事をする
      • 「もくもく会」の仕事版
    • コワーキングするべき97の理由
    • 60弱までずらずらと
      • 続きはWebでΣ(・ω・ノ)ノ
  • ・・・あれ? 今数えたら15にしかない
  • どれか書き漏らしが・・・?
    • 見つけたら追加します(ノ´・ω・)ノミ(m´_ _)m