latest log

酩酊状態で書いたエンジニアポエムです。酩酊状態で読んでください。

2014-01-01から1年間の記事一覧

HTMLCanvasElement ベースの Custom Element が作れない メモ

Custom Element spec: http://w3c.github.io/webcomponents/spec/custom/ HTMLCanvasElement ベースの Custom Element が上手く機能しないのは不具合なんだろうか? 仕様なんだろうか的メモです。 var p = Object.create(HTMLCanvasElement.prototype); p.cre…

This is the implementation of the animation PNG renderer by pure JavaScript.

(ε・﹏・)з そろそろ、Custom Elementを勉強しないとなー (ε・﹏・)з 一日勉強したら、どんな事ができるようになるんだろう? (ε・﹏・)з やってみよーー の結果がこちら。 WebModule demo, APNG and Custom Element ... Animation PNG を再生する <a-png> カスタム</a-png>…

みんな大好き WebWorkers (WorkerMessage.js 作った)

WebWorkers(以下Worker)をハンドリングするのは結構大変で、ちゃんと意味があるコードを書こうとすると、 Worker が応答無くなったらどうしよう。エラーハンドリングどうしよう。どんなエラーがあるんだろう Worker に job 投げて結果を受け取ってクローズし…

innerHTML clears the drawing canvas pixels.

Canvas に描画した内容は、innerHTML を使った Nodeツリーへの干渉により描画内容がリセットされ消えてしまいます(in Chrome, Safari, Firefox) useInnerHTML = false にすると消えません。 <body> <canvas></canvas> <img src="foo.png"></img> </body> var useInnerHTML = true; window.onload = function() { var …

List up the device item of the iOS simulator.

$ xcrun simctl list $ xcrun simctl

Create a new WebModule FPSpec.js

Flash Lite って最近どうなってるのかなー? を調べるついでに、新しい WebModule FPSpec.js を作成しました。 https://github.com/uupaa/FPSpec.js/wiki/FPSpec

WebKit changeset diffs from 9/24 to 10/30

Web Developer が興味を持ちそうな WebKit changeset の差分情報です。 9/24〜10/30 に行われた変更からかいつまんでいます。 これらは、iOS 8.2 や iOS 9.0 に適用される可能性があります。 https://github.com/uupaa/Spec.js/wiki/WebKit-Changesets/_comp…

HTML5 API の experimental な demo 集

存在は知ってても未体験の HTML5 な API が結構あると思います。 バイブレーションAPIとか、頑張ってゲームとかに組み込むと良いのではないでしょうか。 HTML5 API demos

Android 5.0 が発表されたので

2014-10-15 に Android 5.0 (Lollipop) が発表されました。 このエントリは過去のエントリ docomoとauから発売済みのAndroidデバイスについて、Android 4.4にバージョンアップされる端末の割合を、メーカー別に調べてみました の続きです。 Android 5.0 時代…

Chrome canary で enable-experimental-canvas-features フラグを有効にすると何がおきるのか

Chrome canary で chrome://flags/#enable-experimental-canvas-features を有効にした場合になにが起きるか調べました。 var ctx = document.createElement("canvas").getContext("2d"); { canvas: canvas, fillStyle: "#000000", font: "10px sans-serif",…

APNG now?

APNG 自分用のメモ APNG はアンオフィシャルな仕様。標準化プロセスの途中で中断してしまっており、PNG の仕様の一部には盛り込まれていない。 Google Group の Chromium-dev における APNG のディスカッション ▶ 再開しておらず A: サポートいらんやろ B: i…

Closure Compiler が ES6 のキャッチアップを開始

自分用のメモ Closure Compilerが ES6 のキャッチアップを開始しており、以下のコマンドラインオプションが追加されていました。 --language_in VAL Sets what language spec that input sources conform. Options: ECMASCRIPT3 (default), ECMASCRIPT5, ECM…

Canvas が専有するリソースをパージ可能になる Canvas Context Loss and Restoration について

モバイル端末が大画面化 + ハイレゾ化する昨今、メモリ不足でゲームがスコンスコン落ちるとお悩みの WebGame 業界の皆様いかがお過ごしでしょうか。 Canvas がリソースを食い過ぎているために、WebAudioにまわすべきリソースが確保できず音を鳴らすと不安定…

日本におけるWebFontの夜明けぜよ(てきとう

WMCache.js を使って、Noto フォントをキャッシュし、レンダリングするテストコードです。 Notoフォントのサイズは16.4MBありますが、キャッシュされているため一瞬(この例では57ms)です。 これで、2015年からはゲームの世界感に沿った WebFont とか使えるん…

WMCache.js を大容量の LocalStorage として使えるように機能を追加しました

cache.store で保存するときにドットから始まるパスを指定すると、隠しキャッシュ扱いになり、GC でキャッシュを自動削除しないようにしました。 つまり、WMCache.js を大容量の LocalStorage として利用可能になりました。 (ε・◇・)з o O ( どんぐらい大容…

WMAudioUtil.js (getAutoPlayFunction) 作りました

従来から iOS にはブラウザ上でのサウンド再生に制限があり、 UnitePlayer.js 作ったよー - Mobile Safariに関する制限 iOS デバイスにおける WebAudio の制限 などをご覧いただけると分かるのですが、 (ε・◇・)з o O ( はっ!? なんだか毎回似たようなコード…

現代的で大容量なクライアントサイドストレージの実装 WMCache.js を公開しました

ブラウザ上で、100MB 〜 2GB もの大容量のクライアントキャッシュを高速に、ストレスなく扱えます。 もちろんモバイルブラウザに対応しており、iOS 8 と Chrome for Android でも動作します。 詳しくは、 https://github.com/uupaa/WMCache.js/wiki/WMCache …

Audio と WebAudio と、残された寿命について考えてみる

別の何かの調べ物の副産物。メモ

Maximum image size limits in Mobile Safari

Mobile Safari には、画像のサイズ制限が存在します。 Know iOS Resource Limits Your webpage performing well on the desktop is no guarantee that it will perform well on iOS. Keep in mind that iOS uses EDGE (lower bandwidth, higher latency), 3G…

ページ内に仕掛けられた全てのEventListenersの設定元の一覧をダンプし、必要な対策を施す方法

iframe 内のページ遷移を親 window で検出する

iframe 内で発生したページ遷移を親windowで検出し、以前のページを強制的に再表示する例です。 ページ遷移そのものを抑止しているわけではなく、遷移直後にページを戻しています。 短いながらも、なかなかトリッキーなコードです。 index.html (parent wind…

Chrome for Android の起動オプションの指定方法について(調べてる途中)

Chrome には起動オプションというものがありまして、 --disable-gpu や --enable-web-midi などの動作フラグを付けた状態で Chrome.exe や Chrome.app を起動すると、色々と隠し機能が有効になります。 OSごとの起動オプションの指定方法はchromium-with-fla…

Mac に Android のファイルシステムをマウントする

意外に知らない方もいらっしゃるのでメモ Android File Transfer をインストールし、USB で Android 端末を接続すると、Windows と同様に、デバイスのディレクトリを直接参照することができます。 見れないファイルは権限が無いということで。 もっと詳しく…

Silverlight の光は、もうすぐ消えるんじゃないかと

Mac で Chrome Canary (Ver 39, 64bit版) を使っているんですが、Silverlight を入れても入れても Silverlightが利用できません と表示されるので、 (ε・◇・)з o O ( ?? はて ?? になってました。 Chrome Stable (Ver 37, 32bit 版)だと動きます。 こういう…

add Valid.register

WebModule Valid.js に Valid.register を追加 以下のコードは、これまでは、引数 url は URLString として妥当かどうかではなく String かどうかを確認する機能しかもっていませんでしたが、 function foo(url) { // @arg URLString //{@dev if ( !Valid.ty…

Web カラオケ API

カラオケAPI なるものを発見 IE 13〜14 に実装されそうな独自規格の予感が… Presenting the new Karaoke Web Standard... - YouTube // Initialize the Karaoke object and pass the song to play var song = setKaraoke( "Call Me Maybe"); // Initialize t…

iOS 8 Mobile Safari の変更点を予測してみました

iOS 8 Mobile Safari の変更点を WebKit Changeset から予想してみました。 主な変更は、 HTML5 API Blob URL ( new URL("http://example.com").hostname -> "example.com" ) IndexedDB CSS -webkit-filter with SVGFilter CSS JIT 古い仕様に基づく CSS Var…

スマフォブラウザゲームのパフォーマンスチューニング手遅れパターン

最近、こういう事例が増えてます ネイティブゲームアプリもグリグリアニメーションする昨今 俺らもブラウザゲームの限界を目指そうぜ! 盛るぜー盛るぜーー超盛るぜーー 数ヶ月後… 来月リリースだけどカクカクします助けてーー きさまら何度やったらわかるん…

node.js で絶対パスや相対パスを取得する方法

年に12回ぐらい (ε・◇・)з o O ( ? ってなるのでまとめとくね

docomoとauから発売済みのAndroidデバイスについて、Android 4.4にバージョンアップされる端末の割合を、メーカー別に調べてみました

docomo と au から "Android 4.4へのバージョンアップ予定製品について" の発表がありました。 ここで、 docomo と au について 2012 Q3 〜 2014 Spring 端末の中から Android 4.4 へのバージョンアップが予定されている端末の比率をメーカー別にみてみまし…