タグ

ブックマーク / uupaa.hatenadiary.org (11)

  • 最適化前後のコードを一緒に配布し技術共有を促進する(BaseCode) - latest log

    数ヶ月前までは、Google Chrome に実装されている JSON よりも、お手製の msgpack.js のほうが速かったりした事もありました。でも気がついたら、いつの間にか Google Chrome 9 dev にぶっちぎられていました。 で、速度差を挽回すべくコードをいじりだして、ふと思ったんです。いじり倒す前のベースとなるコードは取っとくと、後で役に立つんじゃないか? と。速度差の比較材料になるし、ベリファイも取れるし、いいことあるんじゃないかな? と。 たとえば、Hash を MessagePack にエンコードする処理は、以下(↓)のコードが原型になりますが、 // 先にサイズを求める if (Object.keys) { size = Object.keys(mix).length; } else { for (i in mix) { mix.hasOwnPropert

    最適化前後のコードを一緒に配布し技術共有を促進する(BaseCode) - latest log
  • パーティクル3万個 - latest log

    IE 10pp2 と iPad2 (iOS5) のスコアを追記しました iPhone4S (iOS5) のスコアを追記しました Firefox 4 から window.mozRequestAnimationFrame が利用可能になっています。 window.requestAnimationFrame / setTimeout(,4) / setInterval(, 16) で パーティクル3万個を飛ばすデモ。 ベンチマークマシンのスペック → MacBook (13-inch, Late 2009) - 技術仕様。 メモリ4GBに + BootCamp + Windows7 上で計測しています。 Windows エクスペリエンスインデックスの数値は、5.1 で、各項目は プロセッサ: 5.8 メモリ: 5.8 グラフィックス: 5.1 ゲーム用グラフィックス: 5.5 プライマリハードデ

    パーティクル3万個 - latest log
    hitode909
    hitode909 2011/06/26
    javascript アニメーション
  • event.offsetX と offsetY の互換性について - latest log

    IE9正式版ではなく IE9pp(IE9 Platform Preview) の現状について記載しています。 event.offsetX/Y や event.layerX/Y から相対座標を取得できますが、DOM Lv0 のため仕様が無く、互換性もありません。今日はそれらの非互換性について調べてみました。 event.offsetX/Y は、IE, Opera, WebKit で定義されており、event.layerX/Y は、Gecko と WebKit で定義されています(WebKitのlayerX/YはGeckoと別物です)。 event.offsetX/Y は、現在標準化にむけて策定中です http://www.w3.org/TR/cssom-view/#extensions-to-the-mouseevent-interface 策定中の仕様では event.offsetX/Y

    event.offsetX と offsetY の互換性について - latest log
    hitode909
    hitode909 2011/04/09
  • ワンライナーIE6殺処分(精神的ブラクラ) - latest log

    <script>document.createStyleSheet().addRule("*>*", "color:red");</script> このようなコードが埋め込まれたページをIE6で開くと、10数秒でメモリとswapをい尽くします。PCが「ぎゃふん」って言うので、気をつけてください。 何も作業していない(再起動OKな)状態で実行することをおすすめします。まちがっても、上司に提出しなきゃならない Word や、社内で共有している Excel シートを開いたまま、ネタを仕込んだページを開かないようにしてください。 ぎゃふんっぷりを十二分に堪能した後は、タスクマネージャからIE6を殺してください。メモリをいつぶした後はCPU利用率が50〜80%ぐらいに下がるため、タスクマネージャも起動できるはずです。 IE6を殺すと下の図のようにメモリが開放されますが、開放されていないリソースも

    ワンライナーIE6殺処分(精神的ブラクラ) - latest log
    hitode909
    hitode909 2010/07/22
  • uupaa.js の これまでと これから - latest log

    uupaa の中の人は28ヶ月前にペットショップからウーパールーパーを2匹連れ帰りました。 同じ日に、「作れども作れども UI 速くならず、じっとコード見る」な感じから脱却するため、中の人は、"uupaa" という固有名詞がWeb上に存在しないことを確認し uupaa.js というオレオレライブラリを作りはじめました。 なぜ当時、百花繚乱な他のjsライブラリを使うことを考えなかったか… 飲みながらじゃないと言えないっ JavaScript勉強前(2年ぐらいまえ)は… JavaScriptを真面目に勉強するまえだと、これで精一杯でした CoverFlow - http://pigs.sourceforge.jp/old_uupaa/uupaa.js.0.3.18/demo/coverflow/coverflow.htm 画像が表示されない場合は何度かリロードしてください(当時はこういうのでも

    uupaa.js の これまでと これから - latest log
    hitode909
    hitode909 2010/06/23
  • uupaa.js 基礎知識なんちゃってマスター - latest log

    uupaa.js 0.7 の概要を、1分でざざーっと分かるように書きました。 これ自体10分で書いてるので、ノープラン・ノーチェックでお届けします。 uupaa.js のビルド uupaa.js というファイルはありません。 必要な機能を組み合わせ、ユーザがビルドして作ります。 ビルドコマンド ビルド方法を説明したスライド: http://handsout.jp/slide/1909 b.php がビルドコマンドになります(要PHP)。パッケージ名のほかに、-m -y -g -j などのオプションを指定できます。 build/b.php パッケージ名 -m -m, -y, -g は MS, Yahoo, Google 製のコンパイラで Minify します。 -j はコメントの削除とファイルの結合だけを行います。 ビルドに成功すると、 uupaa.js と build/mini.パッケージ

    uupaa.js 基礎知識なんちゃってマスター - latest log
    hitode909
    hitode909 2010/02/03
  • JavaScript で 形態素解析ってこうですか? わかりません >< - latest log

    http://pigs.sourceforge.jp/blog/20091232/perry.zip zip ファイルを解凍し、perry.htm を IE で開きます。 文章を選択するか [say] ボタンをクリック ActiveX の実行を許可しますか? と聞かれたら、許可してください。 だいたい、小学校三年生ぐらいだったはず。 ロジックは3日で作って、辞書は2〜3日とか、そんな感じ。

    JavaScript で 形態素解析ってこうですか? わかりません >< - latest log
    hitode909
    hitode909 2009/12/31
  • jQuery.live っぽい実装 - latest log

    submit, focus, blur, change をクロスブラウザにする方法を追記しました。 最新版のコードを追記しました。 デモを追加しました。 jQuery.live() は document.addEventListener(type, fn, capture) で、天辺までバブルアップしてくるイベントを拾う 拾ったイベントが CSS のセレクタ式(expr) に一致するか比較 一致していれば登録されている fn をコールバック という処理をやっているようです。 # 注意: jQuery のコードを見ずにしゃべってるよ そんな感じのを実装してみた var _livedb = {}; // { "expr\vnamespace.click": {...}, ... } uu = uumix(_uujamfactory, { // uu(expr, ctx) -> Instance

    jQuery.live っぽい実装 - latest log
    hitode909
    hitode909 2009/12/31
  • 良く訓練されたスライダー - latest log

    JavaScript で作った UI 部品の話になると、 jQuery UI とか、jQuery TOOLS あるじゃん とか良く聞きますね。 jQuery UI http://jqueryui.com/demos/ ソータブルなリスト http://jqueryui.com/demos/sortable/default.html スライダー横 http://jqueryui.com/demos/slider/default.html Drag http://jqueryui.com/demos/draggable/default.html Drop http://jqueryui.com/demos/droppable/default.html jQuery TOOLS http://flowplayer.org/tools/index.html UI の話だったら、jQuery よりも

    良く訓練されたスライダー - latest log
  • 理由がない限り、Array.join("") による文字列連結は使わないほうがいいみたい - latest log

    JavaScript の勉強を開始したときに「文字列の連結には Array.join() を使え」といった記事を見た覚えがあります(ソース失念したけど、 Operaの技術文書だった気がする ⇒ IE の技術文書だったかも)。 一年ほど信じてて、念のためベンチとってみたら「うそやーん」でした。ってお話。 ベンチの条件は、 3種類の文字列連結方法を試す 1. + Operator 2. String.concat() 3. Array.join("") 文字列の要素数を 11個 と 55個で試す <!doctype html><html><head><title></title> </head><body> <script> window.onload = function() { var now = +new Date, lp = 100; while (lp--) { job(); } d

    理由がない限り、Array.join("") による文字列連結は使わないほうがいいみたい - latest log
  • JavaScript で、画像本来のサイズ(幅, 高さ)を取得する方法 - latest log

    Opera で DOM Mutation Event を使用するコードを追記しました。 まとめを追加しました。 Opera パート2に取得できないケースが見つかったため、パート3 を追加しました。 rhino.jpg(幅:300px, 高さ:227px) を、 <img id="rhino" src="rhino.jpg" width="100" height="75" /> と、100 x 75 で表示している場合を例に、画像来のサイズを取得する方法をご紹介します。 Firefox, Safari, Google Chrome なら image.naturalWidth と image.naturalHeight を利用します。 image.naturalWidth と image.naturalHeight の初期値は 0 です。画像の読み込みが完了した時点で適切な値に更新されます。

  • 1