読者です 読者をやめる 読者になる 読者になる

latest log

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

WebKit が WebAssembly の実装を開始したようですが iOS 9 には入りません

2015-08 の初週には、iOS 9 に入る機能が決定されます。あと数日ですね。 ということで、iOS 9 に入りそうな機能候補をまとめたページを更新しました。 以下の機能は iOS 9 には含まれません。iOS 10 に期待しましょう。 MediaSession WebAssembly WebCompon…

アホロートルエンジニアから見た特許

昨年特許を出願した時にいろいろと勉強した事もあり、老害知識を絡めて書いてみました。10分LT向けのボリュームです。 盛り込めなかった要素もたくさんあり、一部過激な部分はカットしてお届けしております。 弱い特許を強い特許にするにはどういったやり方…

nginx: Avoid CORS and reverse proxy settings

ブラウザから XHRでAPIサーバにアクセスして JSON が欲しいんじゃあ、 でもサーバに(Access-Control-Allow-Origin *)は置けないんじゃぁ、 CORS 嫌いじゃぁぁぁぁ という状況。実によくあると思います。 nginx でその辺やったことなかったので、やってみたら…

Update GitHub/WebKitChangeLog.wiki

I have updated Compare Revisions · uupaa/WebKitChangeLog Wiki · GitHub, It is one month value of progress.

Block modal dialogs inside a sandboxed iframe

JavaScript の Array#sort で return 0 すると要素の順番は不定になります

Node.js - v8(Node/Chrome)のソートは崩壊しました(非安定ソート) - Qiitaqiita.com を拝見してました。心当たりがあるのでメモ程度に。 JavaScript の Array#sort は仕様的に非安定ソートで、実際もそうです。実装により異なる結果が得られます。 より具体…

iPhone/iPad/Android 用のサイズ違いのアイコンを自動的に作成してくれるサイト

それが http://iconogen.com/ 作成したアイコンをまとめて zip でダウンロードすることもできます。 (ε・◇・)з o O ( waifx2 がめっちゃ活躍しそうなサービスだ!

HTML の linkタグに prefetch 機能が追加され、より便利になるようです

linkタグに pre fetch 機能を追加する仕様 (Editor's Draft)が上がってきています。 Chrome - indevelopment IE - サポートするかも Firefox - 不明 Safari - 不明 <link rel="preload" href=“…" as=“…" onload=“…” onerror=“…”> 従来は、new Image や XHR と DOM API を使ってリソース毎に別々のJavaScriptを記述する必</link>…

Xperia Z4 の標準ブラウザは使わずに、Chrome を使ってください

docomo, au, Softbank から発売されている Xperia Z4 には、2種類のブラウザ(標準ブラウザ, Chrome)がプリインストールされた状態で出荷されていますが、標準ブラウザで Canvas を使った場合に、アニメーションの表示順番がおかしくなるという問題を抱えてい…

Android 5.0 バージョンアップ予定端末から見る、購入後も安心できるメーカーと、売りっぱなしなメーカーとの光と影

先日、Android 5.0 バージョンアップ予定の端末について、キャリア各社から発表がありました。 docomo au SoftBank Xperia Z3 1機種のみ メーカー別の対応率 メーカー別のAndroid 5.0対応状況をまとめてみました。 2013 Q3 〜 2014 Winter に発売された端末…

Optimize a variable using a reference to the TypedArray.

(ミ・◇・ミ) まゆつば。まゆつば

iOS 9 MobileSafari に入るかもしれない機能の一覧 (2015-04-28 update)

https://github.com/uupaa/WebKitChangeLog/wiki/iOS9.x.x.changesets と関連するページを更新しました。 ES6 Modules はこれから ES 6 の主要な機能はだいたい実装できてきています。あとは ES6 Modules が入れば… という段階ではないでしょうか。 WebKit …

Chrome 42 で NPAPI プラグインが無効化されました。開発が間に合わない人は泣きましょう

Chromium 開発チームは過去に NPAPI プラグインを廃止すると宣言しており、2015/4/14 にリリースされた Chrome 42 Stable ではデフォルトで無効になりました。 2015/9 頃にリリースされる予定の Chrome 45 で完全に利用不能になる予定です。 Unity Web Playe…

iOS 9 MobileSafari に入るかもしれない機能の一覧

以前は、https://github.com/uupaa/Spec.js/wiki にぶら下げていたのですが、専用のブランチに移動しました。 https://github.com/uupaa/WebKitChangeLog/wiki/iOS9.x.x.changesets このような機能が利用可能になると予想しています。 HTML/DOM/CSS ES6 のテ…

Re: Freezing Chrome for Ice Cream Sandwich

2015-03-03 にこういった記事が踊りました。 Freezing Chrome for Ice Cream Sandwich Google、Android 4.0向けChromeのサポート打ち切りへ ついネガティブな思考に囚われた人もいるとは思いますが、あらかじめこのような事態を想像していた人も少なからずい…

requestAnimationFrame and Date.now in WebKit

2015-03-03 の一連のツイートがこちら performance.now() iOS 8.0 で追加されて、iOS 8.1 で削除されてた— コラーゲンたっぷりさん (@uupaa) 2015, 3月 3 正しくは、「iOS 8.1.1 で」ですね performance.now() 削除されてたのソース。 WebKit のとこ https:/…

GPU Rasterization in Chrome

Chrome で requestAnimationFrame を使うとジワジワとヒープが増えていき、定期的にGCが走ってしまう

Mobile Browser にも そろそろ Extenssion を

MSの新ブラウザSpartanが発表される数日前に、Spartan は Chrome Extenssionをサポーするという噂があったのだけど、これを見た時の僕の反応は、 (ε・◇・)з Chrome で Adblock とか使いたいよね (ε・◇・)з でも端末スペックや検索事業などの色々な事情があっ…

JavaScript でも、Ruby のように、より破壊的なメソッドの末尾に何か記号を付けたい

Qiita のエントリ を拝見して、 JavaScript も メソッド名には ! が使えないけど、$ は使えるので、Ruby の tr と tr! のように、 メソッド名から「より破壊的なメソッド(≒レシーバーの内容を変更するメソッド)」がわかると、どうなるのかな(良い作用がある…

get next power of two in javascript

周囲の協力を得つつ身軽でありつづけなければ、チャレンジなんて続けられるもんじゃないよ? という考え方

どんどん新しい事を取り入れればチャレンジしている気になるかもしれませんが、その人しかメンテできないとか、引き継げないような手離れが悪い物を生産する人は、いずれ自分が生産し貯めこんだゴミに追いつかれ、手足が止まる。 身軽さを維持したいなら、尚…

最も基本的なコードは残しつつ、徐々に最適化を行うという考え方

まずシンプルで説明的なコードを組む(当然遅い)。これをAとして最後まで保持する。次に様々な条件を設定し測り改修効果がありそうな場所を探す。削ったコードを測定する。Aと付きあわせて削りの正しさを証明する。 これらは至極当然の事。これを知らない人が…

感想はモグモグしてから

「◯◯は無価値クソだ」という人は◯◯にこれだけ長期的に投資が行われているという現実と、投資を行ってきた技術者や企業の活動も無価値だから「クソ」とか言ってるとすると、「何かにつけて文句ばかりを言い結果を出さない人は分け前をもらえない」という法則…

WebModule version 0.3.0

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…