第13回HTML5とか勉強会 - Google Docs
https://docs.google.com/Doc?docid=0Afz5Dw63IZCSZGZ3bXNjN3ZfMjQ5Y2N0NnI1Z20&hl=ja
今回の「HTML5とか勉強会」の会場はソフトバンクさんでした。
食堂の一角で行われました。そのため飲み食い自由との事。セミナーの途中にはサンドイッチ、ジュース、ビールなどの差し入れも有りました。ソフトバンクさん素敵です。
html5j on USTREAM: This show .
http://www.ustream.tv/channel/html5j
※ここ以降の画像はクリックするとちょっとだけ大きい画像で見れます。
「ニコニコ動画でのHTML5」(ドワンゴ 草野さん: 40min)
発表資料
第13回 HTML5とか勉強会で講演した - aduca
http://www.aduca.org/2010/12/13-html5-toka-presentation/
必要技術の洗い出し
- 動画再生
- コメント
- 設定保存
動画再生
- video要素で対応
- H.264/mp4
- CPUの8割くらいを動画に裂かれる
コメント
- DOM要素をJavascriptで流す方法以外取れないのでそれで対応
設定保存
- 高画質モードを使うなどプレーヤー設定の保存が必要
- LocalStorage APIを利用
パフォーマンスチューニング
- 何と言っても速度が問題
- 動画を再生しながらのJavascriptなんて重くならない訳がない
- 開発期間の1ヶ月以上をパフォーマンスチューニングに充てる
- クロスドメインに対応する為にHTTPのヘッダに情報を含める修正が有ったくらいで、WebAPIには一切変更しない
【筆者注】HTTPのヘッダに情報を含める修正とは恐らく Access-Control-Allow-Origin の事。
404 Blog Not Found:Ajax - Goodbye, JSONP. Hello, Access-Control-Allow-Origin
http://blog.livedoor.jp/dankogai/archives/51502865.html
- リリース直後のPV数→210000pv
- ユニークユーザ数→6000uu
- 動画の上に何かを載せて表示するHTML5アプリ世界初の実運用案件
QA
Q:高速化の方法を話せる範囲内で教えて下さい。
- DOMツリーの再構築をなるべく行わない作り
- 事前にコメント表示最大数分のスロットを要素しておく
- 親要素からのabsoluteで位置指定
- ソートを再帰に
- 書籍で紹介されている様な地味な最適化なども
Q:setTimeoutでやってる?
- setIntervalでやってる
- videoのtimeupdateで更新
- シークした時だけ位置合わせ
Q:Flashだったら出来た(簡単だった)のにHTML5だと苦労したところは?
- コメントに影を付けるドロップシャドー
- 正規表現でNGマッチングがとにかく遅い
- XMLのパースが遅い、JSONだったら速いのに→WebAPIに変更をさせない予定だったので出来なかった
- ニコスクリプト(NICOscript)→実装出来なかった
ニコスクリプトとは (NICOScript): - IT用語辞典バイナリ
http://www.sophia-it.com/content/%E3%83%8B%E3%82%B3%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88
「P2PライブShareCast - iPhone/iPadへの配信を実現」(ビットメディア 高野さん他: 40min)
右下はサテライト会場の映像。
NTT Com、低価格なクラウド型サービス「Bizホスティング ベーシック」 - クラウド Watch
http://cloud.watch.impress.co.jp/epw/docs/news/20100427_364240.html
- 当時はまだサービスが始まっておらずトライアルユーザとして利用
事業仕分け第3弾でiPhone/iPadへの配信を行ったときの記事。
事業仕分け第3弾はニコ動、Ustream、ShareCast、DMM.comの4社が配信
システムの概要。
HTTP Live Streamingによる配信。
システム開発に協力された白石さん(HTML5とか勉強会の主催者)からHTTP Live Streamingについての説明、Appleが策定した仕様。細切れに保存された動画とプレイリスト再生順番のデータにより配信。
【筆者注】
詳細はAppleの以下のサイトに載っています。
HTTP Live Streaming Resources – Apple Developer
https://developer.apple.com/resources/http-streaming/
ストリーミング中継にも関わらず、シークバーを移動して過去の動画を観る事が出来るFrance24の事例の紹介。
「File API: Directories and System 」(クックパッド 太田さん: 20min)
発表資料。
File API: Writer, Directories and System
http://ss-o.net/event/html1216/
- サイズ制限は仕様上無し、ブラウザによる制限が有るはず
- 従来のArrayで扱うには非効率、BlobとTyped Arrayが導入された
- Typed ArrayはWebGL由来
【筆者注】
スライドではChromeの場合は about:flag となっていますが s が抜けてしまっている様です。Chromeで試す場合は about:flags と入力して下さい。
Firebug(で有ってたかな?)でオブジェクトの内容を表示したところ。
SaveAsで「WebページからファイルをDL」と同じ動作を行う事が出来る。これによりユーザに加工した後のファイルを渡す事が可能。
QA
Q:エラーのハンドリングは?
- onError(e)で
Q:HTML中に保存したデータを使用可能か?
createObjectURL()を使用する事で参照可能な物に変換可能、imgタグなどに使える
ライトニングトーク「WebSocketRemote for iOS」(kanasanさん)
発表資料。
第13回HTML5とか勉強会の発表資料 - WebSocketRemote for iOS (Kanasansoft Web Lab.)
http://www.kanasansoft.com/weblab/2010/12/html5_toka_13_-_websocketremote_for_ios.html
WebSocketを使ったVPNについての発表でした。
会場では実際にWindowsの画面をiPhone(Safariブラウザ)で表示し、マウス操作も可能な様子のデモが行われました。
iPhoneの画面の上の方にWindowsの画面が表示され、画面下にマウスの左右ボタンとスクロールホイール代わりのコントローラが付いていました。