タグ

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

  • 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化が

  • Re:長期間の使用で重くなったFirefoxを一瞬で軽くする方法(追記あり) (Kanasansoft Web Lab.)

    この話は以前にも話題になっていたのだけど、また同じ事を繰り返しそうなので書いておく。今、時間があまりないので乱文で失礼。間違いの指摘、異論があればよろしくです。 firefoxが利用しているsqliteDBは、データをdeleteしてもDBファイルは小さくならない。このため、firefoxを長期間使用しているとsqliteのファイルがどんどんと肥大化していく。(この点でfirefoxを避難するのは多分的外れかなぁ。内部でsqliteを使用しているアプリケーションを調べるとその実績に驚くはず。)ここで説明するのは、sqliteが既にインストールされている事が前提。

  • できるだけ簡単にMacでローカルにGyazoサーバを立てる方法 (Kanasansoft Web Lab.)

    来であれば、0.2に入っている「upload.cgi」を使えば良いのですが、Rubyの実装に変更があったためそのままでは動作しません。 「Digest::MD5.new(imagedata).to_s」の部分を「Digest::MD5.new.update(imagedata).to_s」に変更します。 (MacOSX 10.5の場合。これ以前のOSXでは修正が不要かもしれません。) また、「upload.cgi」は、同一ディレクトリにファイルを保存するため、実行環境配下に画像ファイルが入ってしまいます。 これでは、画像ファイルが実行ファイルと認識されてしまうため、ブラウザから参照する事ができません。 (仕様的にcgiファイルでも受け取り実行環境に配置されてしまうため、セキュリティ的にも危険です。) このため、画像を受け取る専用のアカウントを作成し、実行環境下でない「サイト」フォルダ(内

    poppen
    poppen 2010/03/06
  • Jyazo0.1.0をリリースしました (Kanasansoft Web Lab.)

    GyazoクローンのJyazoの最新バージョンをリリースしました。 0.0.6からほとんど変更はありませんが、安定して動作しているのでバージョン番号を0.1.0に変更しました。

    poppen
    poppen 2010/01/10
  • JavaによるGyazoクローン「Jyazo」 (Kanasansoft Web Lab.)

    Javaによる実装のため、Mac OS X,Windows,Linux問わず動作するはずですが、開発環境がMacのため他の環境は試せていません。 GyazoはMacのscreencaptureコマンドを使っているため、キャプチャの範囲を選択した後にキャプチャされますが、Jyazoは全画面をキャプチャした後に範囲を選択し、選択範囲を切り抜いています。これは、リアルタイムで処理するのは遅すぎるためです。 マルチディスプレイ環境には未対応です。プライマリディスプレイのみキャプチャするようになっています。 Gyazoが内部的に持っているIDをJyazo独自のものにしています。 上記の通り、IDはJyazo独自のものを設定しています。 Gyazoのページには、アップロードファイルの一覧を表示する方法が書かれていますが、多分この機能にIDが使われていると思います。 しかし、これまでこの機能に気付いてお

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

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

  • GreasemonkeyのGM_setValueで保存できるデータの種類 (Kanasansoft Web Lab.)

    GreasemonkeyのAPIであるGM_setValueで保存できるデータの種類に制限があるのをご存知ですか? それを調べるために、次のようなUserScriptを実行してみます。 但し、unsafeWindowを使っているので信用のおけるsiteで実行してください。 // ==UserScript== // @name GM_xxxValueTest // @namespace http://www.kanasansoft.com/ // @include * // ==/UserScript== ( function(){ var data=[ ["Boolean",true], ["Number",12345], ["Number",12345.67890], ["String","12345"], ["Array",[1,2,3,4,5,"a","b","c"]], ["Dat

  • 1