(ε・◇・)っ ひっこした http://uupaa.hatenablog.com/(ε・◇・)з そのうちここは綺麗サッパリ消えます

New Features in Android Browser 4.0

via http://www.mobilexweb.com/blog/android-4-0-browser-html5 Android Browser 4.0 は将来的に Chrome に置換されるけど、まだ時間が必要。4.0 に搭載されているブラウザは従来の改良版 Google Chrome と Android Browser のブックマーク同期 レンダリン…

mm.mfx 群舞向きアニメーションの実装

uupaa.js 0.8 で書いた uu.fx は1つのオブジェクトを高速で滑らかにアニメーションさせる能力に特化してまして、 沢山のオブジェクトが整列してパラパラと切り替わるタイプのアニメーションには使いづらいものでした。ずっと宿題になってましたが、requestAn…

(ε・◇・)з CoffeeScript と mofmof.js

(ε・◇・)з CoffeeScript は Ruby や Python っぽく書けて JavaScript にコンパイルできるプリティな言語だとか! (ε・◇・)з 噂では CoffeeScript で書くとコードが短くなるとか!!物は試しに http://jashkenas.github.com/coffee-script/ にある幾つかのコード…

Screen Transition Traversal Pattern

js

とある開発環境で iPhone/Android アプリを書いてます。開発言語は js ですが Titanium ではありません。今回の開発で実現したい事の1つに「可能なら UI を自動でテストしたい」というのがあります。 ぼーっとしていたら、以下のようなロジック(パターン)を…

IE10 で attachEvent が廃止された場合に備えましょう

Windows 8 には IE10 が標準搭載されます。これらは早ければ2012年の秋ごろまでにリリースされる予定です。 IE10 ではレガシーな(古い)機能やメソッドが切り捨てられると予告されています → 非推奨の DOM イベントIE10 で attachEvent が廃止されると attach…

NO TEST, NO LIFE. NO DOC, NO LIFE

js

uupaa.js や mofmof.js には {@hoge 〜 }@hoge のようなコードブロックを切り落として Minify する機能があるので、「ソースコードにテストもドキュメントも全部埋め込むことが可能だな〜」って3年程前から考えてました。そこで、Function.prototype.spec と…

mofmof.js で日本語コメントの併記を始めました

uupaa.js の開発中に、 図形を交えたり、コードの由来を説明する外部リンクをソースコードに埋め込む オンラインコメントスタイル おすすめ 独自○○ より オレオレ○○ と呼べばいいよ。オレオレライブラリとか、オレオレスタイルとか オレオレコーディングスタ…

正規表現を明記せず、RegExp#exec を String#split にするとちょっとハッピーに

js

JavaScript の小ネタです。UserAgent 文字列(window.navigator.userAgent) "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.814.0 Safari/535.1"から、Windowsのバージョン(6.1)を取り出すようなコードをよく見か…

HTML5の文字エンコーディングの判定は 512byte または 1024byte 以内までに

HTML5のWorking Draft(20110113)までは、文字エンコーディング判定の範囲はファイルの先頭512byte以内と定義されていました。そのため、

パーティクル3万個

IE 10pp2 と iPad2 (iOS5) のスコアを追記しました iPhone4S (iOS5) のスコアを追記しましたFirefox 4 から window.mozRequestAnimationFrame が利用可能になっています。window.requestAnimationFrame / setTimeout(,4) / setInterval(, 16) で パーティク…

Number.prototype.toHexString

js

数値(num)から4桁のゼロ埋めされた16進文字列が欲しい場合に var num = 123; var rv = ("000" + num.toString(16)).slice(-4); alert( rv ); // "007b" と毎回書くのもアレなので、こんな感じに書けるといいんじゃないでしょうか。 alert( (123).toHexString…

IE9 日本語版 非公式ダウンロード

追記: 2011-04-26 00:00 より日本語版が正式にリリースされるとのこと Internet Explorer(R) 9 日本語版の提供日について 2011 年 4 月 6 日 日本マイクロソフトは、このたびの震災に伴い、重要な通信インフラとなっているネットワーク回線への負荷軽減への…

DOM Lv0 イベントハンドラ内で media 変数にアクセスできない

IE6〜IE9RC では、 DOM Lv0 イベントハンドラ内では media 変数にアクセスできないようです。謎です。 var media = "(ε・◇・)з はろー"; <input type="button" value="IEだとmedia変数が見えないよ" onclick="alert(media)" />

online comment (オンラインコメント)

uupaa.js のコメントは、多くの場合オンラインコメントとして記述しています。例えば、uu.ajax の GC部分では function gc(abort) { if (abort) { // [IE6][IE7][FIX] xhr.abort throw exception // http://twitter.com/uupaa/status/26953945895 try { xhr …

IE9RC で document が const になり再定義が不可能になった

IE9RC の挙動を調べています。 IE9RC では @amachang さんの /*@cc_on var doc = document; eval('var document = doc'); @*/ が封印されてるhttp://twitter.com/#!/uupaa/status/35942322231320576 残念ながら、 @amachang さんの発案した方法がIE9で封印さ…

innerHTML = "" まとめ

HTML5をサポートしていないIE6〜IE8で、node.innerHTML = "..."; のように HTML5 で追加された新要素含んだ文字列を innerHTML に与えると、次のいずれかの条件が成立した場合に親子関係の崩れたサブツリーを生成してしまいます。 innerHTML の前に document…

$("div").append("section") できないらしいので色々調べてみた

追記: jQ的には解決していませんが、素の JavaScript を使った回避方法がわかりました。IE8以下では、オンザフライで作成した要素に対して innerHTML すると謎要素が作成されてしまうといった現象がでるため、一度要素片を、DOMツリー( body とかね ) にぶら…

HTML5の新要素をinnerHTMLで生成できないバグを回避する

IE6〜IE8のinnerHTMLには問題が多く、そのひとつに、HTML5の新要素を食わせると悪夢のようなDOMツリーを生成するというものがあります。 var div = document.createElement("div"); div.innerHTML = "<section>section</section>"; document.body.appendChild(div); 上記のコー…

RegExp#test + parseInt vs RegExp#exec + plus operator

CSSValue な "12em" や "123px" から 単位がpx の場合に 123 という数値を素早く取り出すには、 RegExp#test でテストしてから parseInt で取り出す RegExp#exec してから +(matchedValue) で数値として取り出す のどちらが効率的なのか気になったのでベンチ…

地獄のJavaScript2

(ε・◇・)з 戦いはこれからだ!http://jsdo.it/uupaa/hellsjs2 で動かせるよ // forked from uupaa's // "地獄のJavaScript (Symbolic JavaScript)" // http://jsdo.it/uupaa/hellsjs uu.ready("window", function(uu, doc) { uu.mix(window, uu); uu.config.l…

uu.node.add(source, context, position) のpositionに数値を指定可能に

uu.node.add(source, context, position) の position に数値を指定すると、ノードの挿入位置を指定可能になりました。従来通り文字列("first", "prev", "./first", "./last", "next", "last")も指定可能です。詳しくはこちら http://code.google.com/p/uupa…

速度が求められる部分に Function#bind を導入するのはまだやめましょう

Function#bind は、ECMAScript-262 5th で導入された Prototype.js 由来のメソッドです。 uupaa.js では Function#bind の互換実装も提供していますが、現在はコメントアウトした状態でリリースしていますFunction#bind と 自分でbind相当の処理を書いた場合…

Debug friendly な ON/OFF できるロールオーバー機能の実装

SubmitボタンのonClickイベントの流れを追いたいのに、Submitボタンに仕掛けられたロールオーバー機能(mouseover等)にデバッガの制御を奪われて、しかもその先がMinifyされたライブラリで、イラッとしたことはありませんか?デバッグ中はロールオーバーを一括…

地獄のJavaScript (Symbolic JavaScript)

jsdo.it に投稿してみた http://jsdo.it/uupaa/hellsjs誰かうまいこと、a〜zをつくりだしてほしいんだよ。 uu.ready("window", function(uu, doc) { uu.mix(window, uu); uu.config.log.rollup = 1000; // logロールアップ回避 log('-1 = @', ~[] ); log('0 …

jsのオレオレ演算子

jsのオレオレ演算子といえば、 Boolean値に変換する !!arg 0又は1に変換する +!!arg 小数点を切り落とす arg|0 や arg >> 0 などがありますが、若干分かりづらいので、初心者の方にはおすすめできません。http://jsdo.it/uupaa/9YFT で実行できます。 uu.rea…

uu.ready("href:url/dispatcher", callback, ...) impl

条件成立でコールバックする関数を登録しておく機能 uu.ready() の条件に、ページのURLが一致する場合にコールバックする機能を追加しました。このようにして利用します。同じものを http://jsdo.it/uupaa/2011-01-19 にあげてあります。 // jsdo.it のコー…

クリスマスツリーを iPhone でも見れるようにしたよ

ジェバンニ仕事で、http://koebu.com/event/xmas/2010/ を iPhone / iPad に対応させました*1。 目からビーム出して頑張ってる最中のツイートまとめ iOS では、ユーザアクションを伴わない、audio.play() やaudio.load() は機能しない。さらにpreloadとautop…

動的に生成したノードに対する currentStyle と getComputedStyle はいつから利用できるか?

IE6, IE7, IE8 では node.currentStyle を使うことで計算済みのスタイル情報にアクセスできます。また、IE9を含むその他のブラウザでは、window.getComputedStyle(node, "") を使うことでアクセスできます。getComputedStyle では、単位系が px に統一されて…

msgpack.js を改善しました

version 1.05 を github と、Google Code においてあります。ベンチマーク もGoogle Code に置きました。10万要素のJSONデータの読み込みに時間かかることがありますが、気長にお待ちください。 # IE9用はこっちです http://uupaa-js-spinoff.googlecode.com…