Benchmark.javascript
Benchmark.javascript - jsdo.it - share JavaScript, HTML5 and CSS
ベンチマーク計るやつを jsdo.it に置いときました。jsdo.it だと HTML も含めてセットにできるのでいいですね。Fork していくつか関数を定義するだけでベンチ計れるので、ぜひお使いください……
(jsdo.it のブログパーツがはれるようになったみたいですね)
gerry++
prototype と new がダメってどこ情報よ〜
gerry++
アマゾンのうけとりわすれないように > 俺
CORE::qr が呼ばれないように正規表現パターンを定数化したら速くなった
Text::Xatena の nytprof 結果を眺めていたら CORE::qr がやたら呼ばれていたので、use constant で qr// をループの外に出したら速度が多少改善した。通常の正規表現マッチは勝手にいい感じに定数っぽくしてくれるけど、正規表現パターンはしてくれないのかな。
before -Rate Hatena Textile Markdown Xatena -Hatena 26.8/s -- -84% -86% -89% -Textile 171/s 537% -- -8% -27% -Markdown 186/s 594% 9% -- -20% -Xatena 233/s 770% 37% 25% --
after + Rate Hatena Textile Markdown Xatena +Hatena 26.5/s -- -85% -86% -93% +Textile 175/s 563% -- -8% -56% +Markdown 191/s 621% 9% -- -52% +Xatena 395/s 1393% 125% 107% --
Android でウェブ側からアプリケーションを起動したいときのベストプラクティス
ウェブ側からリンクを貼って特定のアプリを起動させる場合、独自スキームを使うというのは自然な流れでまぁ普通そうしたい感じですが、対象アプリが入っているか否かをウェブ側から取得することができないため (できるの?)、アプリが入ってないユーザさんに対してブラウザのそっけないエラー画面になってしまうのであまり好ましくありません (アプリが入っていることがほぼ確実ならこれでいいけど)
現状でこの方法は簡単には解決できなくて、おそらく現状のベストプラクティス的には http を併用するのかと思っています。
- fooscheme:openapp をアプリケーションでハンドリング
- 確実にアプリが入ってることが判定できる場合に使う?
- 普通にインテント使えばいいので、たぶんあんまり使うケースない……
- スキーム無闇に増やすと怒られる
- 確実にアプリが入ってることが判定できる場合に使う?
- http://mydomain/openapp をアプリケーションでハンドリング
- ウェブからアプリを起動したいときに使う
- URLには「アプリケーションをインストールする」ページを作っておく
- このURLにアクセスすると Browser とアプリ2つ表示されてしまうので、デフォルトでアプリを開くようにユーザを促す
<activity android:name=".PostEntryActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" android:configChanges="orientation">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.ALTERNATIVE" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="fooapp" android:host="open"/>
<data android:scheme="http" android:host="fooapp.example.com" android:pathPattern="/openapp"/>
</intent-filter>
</activity>とはいえ、この方法モノリスでやるときにとろうとしたんですけど、何かがうまくいかなかった気がするので本当にこれでいけるか不安です。(今試した感じ想像通りに動いたので、うまくいかなかったのは当時の勘違いだったかもしれない。あるいは Android1.6 だとブラウザ内の http:// に関しては確実に Browser が制御を奪ってしまっていたような気がする)
gerry++
Firefox、Mac OS X で2つ以上インスタンス化すると、-no-remote の有無に限らず最初に起動したほうが open http://.../ で使われるのはどうにかならないのか
バイナリもう1つ作って Contents/Info.plist のそれっぽいエントリを消したり、s/Firefox/XXXXX/g したりするとうまくいくようだ……