タグ

ブックマーク / www.kanasansoft.com (9)

  • JavaScriptの顔認識ライブラリをチューニングしたら実用レベルになったという話 (Kanasansoft Web Lab.)

    ただ、WebRTCで顔認識させようとすると遅くてしかたがなかった。 最初は速いこともあるが、10回ぐらい認識をさせるとすぐに遅くなる。 とりあえず、デモ。 そこで、チューニングをしてみることにした。 まず、JavaScriptの定番の高速化を試してみた。 例えば、正の数で使える「Math.floor(x)」を「(x | 0)」に、整数で使える「x * Math.pow(2, y)」を「x << y」にする等。 これで、10~30%高速化できた。 次に、遅くなっている部分を調べたら、Web Workersで分散するための仕組みが遅くなる原因だとわかった。 これは、Web Workersを使わない場合にも影響が出ていた。 じゃあ、Web Workersを使えば速くなるのかといえばその逆で、20倍遅くなっていた。 詳しくは調べてないけど、多分Workerスレッドに処理データを渡す時にJSON化が

  • WebRTCでリアルタイム画像処理してみた (Kanasansoft Web Lab.)

    WebRTCのVideo Captureで取得した画像を、リアルタイムで処理しても速度が落ちないのか試してみたら想像以上にうまくいった。 これなら、充分使用に耐えられる。 作ったのは、輪郭検出っぽいのやフレーム間データの差分を用いたものと、それを応用して輪郭が燃えるものや、動いた場所が光るもの。 輪郭検出は周囲のピクセルもみないといけないので、処理が重くなるんだけど、それでもリアルタイムで処理できた。 現行のGoogle Chromeなら、Dev版でなくても動作するが、MediaStreamを有効にする必要がある。 MediaStreamを有効にするには、アドレスバーに「about:flags」と入力しエンター、一覧の「MediaStream を有効にする」の「有効にする」をクリックして、Chromeを再起動する必要がある。 まだ試供的なもので、Flashにあるような確認ダイアログも表示さ

  • WebSocketの基礎知識(2012年年始版) (Kanasansoft Web Lab.)

    WebSocketに関する、よくある質問や知っておいたほうがよさそうなことをまとめてみました。 技術的なことについては深くはふれていません。 あやまりがあれば指摘してください。 Q. 仕様が2つあるみたいだけど... A. WebSocketは、主にブラウザ上で使うことを考慮された通信の規格で、通信の「プロトコル」とJavaScriptから使うための「API」に仕様がわかれています。前者は「WebSocket Protocol」として「IETF」が、後者は「WebSocket API」として「W3C」がかかわっています。 Q. WebSocketってまだ仕様が固まってないんじゃないの? A. WebSocket ProtocolはIETFのRFCの「標準化提案」に、WebSocket APIはW3Cの「勧告候補」になりました。IETFにもW3Cにも承認プロセスがあり、それぞれ最後には「標準

    teppeis
    teppeis 2012/01/09
    FAQ
  • 第13回HTML5とか勉強会の発表資料 - WebSocketRemote for iOS (Kanasansoft Web Lab.)

    大量且つ大容量のデータ処理を行なっているため、不要になったデータはすぐに参照を外すようにしているはずなのですが、iOS版のWebSocketRemoteは、大体3分ぐらいでSafariが落ちます。JavaScriptの処理がiOSのCPUを占有し、SafariのGCが間に合わなくなっているのかもしれませんし、どこかに参照を開放し忘れているところがあるのかもしれません。ただ、iOS上のdebug環境が貧弱なため、調査しにくく原因究明には至っていません。 また、発表の途中で、効率の良かったセグメント長は8192Byteだったとお話しましたが、多分WebSocket固有のものではなく、実装等の他の要因によるところが大きいかと思います。

  • AutoPagerizeのページ数を常に表示させるGreaseMonkey (Kanasansoft Web Lab.)

    AutoPagerizeを使って、ページ数の多いサイトを読んでいると、何ページを見ているのかわからなくなる事がある。 各ページの先頭に、AutoPagerizeがヘッダを挿入してくれるが、各ページの文量が多いとヘッダが見えない。 そこで、今見ているページのAutoPagerizeのヘッダを常に表示するUserScriptを作った。 まあ、正確には1ページ目では表示されないんだけど...。

    teppeis
    teppeis 2010/10/05
    いい動き!
  • Shibuya.js beyond HTML5 の発表資料 (Kanasansoft Web Lab.)

    Shibuya.js beyond HTML5 で飛び入りで話してきた。以前にLTをやった関係で、スピーカー募集の通知があり、開催日前後が忙しくなりそうだったこと等々、諸事情により参加できない可能性があったため、発表はほとんど諦めていた。ところが、飛び入り発表もOKとの事だったので、当日はできるだけ早く会場入りし、2時間で資料を作って発表してきた。諸事情により一部のスライドを削除している。

  • WebSocketを使ってリモートデスクっぽいVNCっぽいWebSocketRemoteというものを作ってみました (Kanasansoft Web Lab.)

    (2010/04/09 追記:タイトル内のVNCをSVNと間違えていたのを修正しました。) 次世代のWebの規格としてWebSocketというものがあります。WebSocketは、AjaxでもCometでもないサーバ-クライアント間の新しい通信方法です。通常のWebアクセスや、Ajax・CometはHTTPを使用していますが、WebSocketはHTTPではありません。接続のたびに接続のリクエストが発生するHTTPと違い、WebSocketはとても高速で、同時に複数の接続も可能となっています。遅延も小さく比較的容量の大きいデータも高速に転送できるため、リモートデスクトップのようなものが作成できないかと思い、WebSocketRemoteというものを作ってみました。ブラウザには、プラグインやFlash、Javaアプレット等は一切不要となっています。 一応動作するのですが、XMLHttpReq

    teppeis
    teppeis 2010/04/09
    おー、X11 over WebSocketですか。 RT @k_matsuzaki: 負けた。http://tinyurl.com/y9sdzyh RT: WebSocket は夢ひろがりんぐですね。すげー。
  • Keynoteで文字が光っているようにする方法 (Kanasansoft Web Lab.)

    自分が作ったスライドで、ハローのように文字が光っているように見える効果がある。 このやり方を聞かれたので細かく説明してみる。 Keynoteには文字やオブジェクトを光らせるような効果はない。 じゃあ、どうやっているのかと言えば実は単純で、影を使っている。 影の色を選択できるアプリケーションであれば、この方法は使えるはず。 Keynoteでこれをやる場合のコツは、文字を太くしておくこと。 Keynoteの影の総量は、対象となるオブジェクトの面積に依存するようなので、細い文字を光らせてもあまり見栄えがよくない。

    teppeis
    teppeis 2009/12/12
  • 『JavaScript:The Good Parts』にツッコミ (Kanasansoft Web Lab.)

    前エントリで、『JavaScript:The Good Parts 「良いパーツ」によるベストプラクティス』が万人向けでないことを書きました。 自分の実力を顧みず、こののベストでない部分をつっこんでいこうと思います。ゴリアテどころかゴリアテの集団に挑んでいくような状態ですね。 さて、全エントリで書いた通り、このは悪いではなく良であり、読む人が読むと良い刺激になるに違いないと思っています。これを契機によりよいJavaScriptの書き方について論議が進むのではないかと期待しています。しかし、対象と思われる層が中級者以上で、初級者が読むと逆に悪になりかねない部分を持っています。勘違いしそうな部分、気になった部分を中心に記述していきます。このため、否定的な内容は沢山出てきますが、上記のような前提ですので、書籍全体がこのような内容が散見されるわけではありません。そして、これを読んでの内

  • 1