« 2010年06月 | メイン | 2010年09月 »

2010年08月 アーカイブ

2010年08月01日

Shibuya.js beyond HTML5 の発表資料

Shibuya.js beyond HTML5 で飛び入りで話してきた。以前にLTをやった関係で、スピーカー募集の通知があり、開催日前後が忙しくなりそうだったこと等々、諸事情により参加できない可能性があったため、発表はほとんど諦めていた。ところが、飛び入り発表もOKとの事だったので、当日はできるだけ早く会場入りし、2時間で資料を作って発表してきた。諸事情により一部のスライドを削除している。
スライドを作り込む時間がなく、スライド内に参考URLをあげられなかったので、以下URLを挙げていく。
DOM3のキーイベント関連
キーイベント発生時に取得できるキーコードがDOM3で整理されそうだという話。廃案になったkeyIdentifierと、新しいevent.keyについては以下が詳しい。
個人的には、全て文字で取得する仕様はセカンドシステム症候群の危険性を感じている。keyIdentifierのようなもので下地を作って、複数出現すると思われるライブラリとライブラリの淘汰で洗練させていくほうが安全じゃないかなぁ。文字コードを取得できるようにするのはDOM4(仮)まで待つとか...。
その他の実装
送信するデータが、画像データであったりVNCのデータであったリ多少の違いはあるけど、WebSocketを使ったリモートデスクトップっぽいものが同時多発的に作られてる。
特に最後のnoVNCは、試してないけど説明を読む限りかなり本格的なものかもしれない。
WebSocketの情報源
WebSocketはあまり大きな仕様ではないので、原文を読めばなんとかなるはず。ちなみに、WebSocketはプロトコルの仕様とAPIの仕様がわかれている。JavaScriptから使用することだけを考えるなら、API部分を調べるのがお勧め。
WebSocketの位置付け的なものは以下のURLに書いてある。
自分が知っている限りで、日本で一番WebSocketのことを追っかけているblog。
WebSocket未対応のブラウザで、WebSocketを使うためにFlashで実装した人もいる。
WebSocketRemote
WebSocketの通信よりも、転送データを作成するところが処理時間の大半を占めていることを説明したときに、高速化はしないのかと質問があった。その時に、ちゃんと説明できなかったんのでちょっと説明。Robotオブジェクトが、OSとJavaVMの間の泥臭い部分をラップしてくれている。キャプチャ以外にも、画像圧縮処理やBase64化のライブラリを使っているけど、高速化するにはライブラリの中をさわらないといけない。同じコードで色んなOSで動いてくれるのが、Javaで実装する利点。せっかくOSの差分をラップしてくれているのに、ライブラリの中をいじるとJavaで実装する意味があまりなくなってしまう。本気で高速化をするなら、各OS向けにC系の言語で書き直したほうが現実的じゃないかなぁと。あと、jarをexe化・app化しておけば、よりユーザフレンドリー。
Google

タグ クラウド