タグ

ブックマーク / os0x.hatenablog.com (30)

  • IE8のレンダリングモードと特定文字列によるクラッシュバグ - os0x.blog

    こんにちは、だいぶ久しぶりなブログ更新です。昨日、IE8のおもしろバグを発見してしまったので、さらしものにみなさんと共有したいと思います。 早速今回のバグの再現コードをみてみましょう。 <!DOCTYPE html>ܫ<br>1日 再現ページ たったこれだけです。JavaScriptはおろか、CSSすらありません。ただのHTMLです。これだけでIE8の標準モードのレンダリングが壊れ、強制的に互換モードにフォールバックされます。 さらに次のようにmetaタグ(もしくはレスポンスヘッダ)でX-UA-CompatibleにIE=8やIE=edgeを指定して、標準モードでのレンダリングを強制していた場合はフォールバックが働かないので真っ白なページが表示されてしまいます。 <!DOCTYPE html> <meta http-equiv="X-UA-Compatible" content="IE=8

    Watson
    Watson 2011/10/04
  • Google ChromeのJavaScriptデバッガの進化がすごい - os0x.blog

    Chrome版のFirebugことGoogle Chrome Developer Toolsですが、以前gihyoで解説したときよりさらに便利になっているので、少し紹介します(元はWebKitなので、そのうち(近いうちに)Safariでもそれなりに使えるようになるはずです)。 圧縮されたコードの整形 まず、目立つところからいきましょう。ちょうど先日更新されたChromeのdev版(12.0.742.0)に搭載されたばかりの機能で、minifyされているJavaScriptコードを読みやすいように整形して表示してくれるというものです(IE9の開発者ツールにも実装されている機能です)。 例えば、Google Analyticsのコードは圧縮されていて普通は読めません。 しかし、Chromeのデベロッパーツールなら、 このように整形してくれます。 やり方は簡単で、デベロッパーツールのScript

    Google ChromeのJavaScriptデバッガの進化がすごい - os0x.blog
  • MacをJavaScriptの開発環境にするメモ - os0x.blog

    以前は自宅も仕事Windowsメインな環境だったんですが、仕事の方がでMac+英語キーボードな環境になり、ついでなので自宅もそれに合わせることにしました。 環境はMac miniの最新型で一番安いの(6月くらいに購入)とMacbook Airのやっぱり一番安いの(11月に購入)です。両方合わせて15万くらい。お手頃…なのか?どうでもいいけど、mac miniは1.3kgしかなくて、Macbook Airの13インチとほぼ同じ重さだっりします。miniデスネー。 ついでにWindowsのほうは2年半前に買ったCore2duo(Windows7アップグレード済み)で、当時そこそこハイエンドだったやつです(ちょうどMac miniと同じくらいのスペックだけどこいつは一体何kgあるんだろう…)。 以下、Macの開発環境をなるべく最近の流行りを取り入れてレポートします。 ブラウザ さて、マシンのセ

    MacをJavaScriptの開発環境にするメモ - os0x.blog
    Watson
    Watson 2011/01/05
  • JavaScriptのデバッグTips - os0x.blog

    JavaScript Advent Calendar 2010 8日目担当のid:os0xです。 JavaScriptネタは案外範囲が広くて色んなネタがあるので、毎回が楽しみですね。 さて、私はデバッグをネタにしたいと思います。テストではなくデバッグです。誰かが書いたコードをメンテナンスしなきゃー、とか。jQueryプラグイン導入しようとしたけど、なんかうまく動かないーみたいなケースのおはなしです。 JavaScriptのデバッグは大変なので、多くの方が日々苦労されていると思います。なぜJavaScriptのデバッグが大変なのか少し整理してみましょう。 ブラウザ依存 まず、なんといってもJavaScriptはウェブブラウザ上で実行されるので、環境が一定ではありません。特定の環境だけを対象にJavaScriptを書くことは滅多にありません。PC向けではIE、Firefox、Chrome、Sa

    JavaScriptのデバッグTips - os0x.blog
  • AutoPatchWork更新とSITEINFOのあれこれ - os0x.blog

    まだChrome版だけですが、AutoPatchWorkを更新しました(AutoPagerizeのセキュリティアップデートとは関係ありません)。 Chrome Web Store - AutoPatchWork ローカライズして(一部を日語で表示されるようにしただけですが)、かなり前に作りかけていたSITEINFOの管理機能を載せました(あと、NAVERまとめとTumblrの専用対策)。 こんな感じです。 主な機能は 検索 ソート 特定のSITEINFOの無効化 SITEINFOの編集 "number of successful"はURLがマッチして実際に使われた回数、"number of failed"はURLがマッチしたけどXPathでマッチしなかった回数です。自分がよく使うSITEINFO、まったく使ってないSITEINFOが確認できます。 統計を取り始めたのは今年の2月くらいのア

    AutoPatchWork更新とSITEINFOのあれこれ - os0x.blog
  • script, styleタグ内のコードの書き方 - os0x.blog

    # 最初にちょっと余談を。Chromium-Extensions-JapanのほうにChrome6 Betaの変更点を書きました。どうぞよろしく。 さて、scriptタグ内をHTMLコメントで括ってからJavaScript書くのって意味あるの? - Togetterの件に関して、関連ネタをいくつか書いておきます。。 まず前提として、scriptタグの中に直にコードを書くというのはできる限り避けたほうが良いです。とはいえ、ちょっとしたコードをいちいち外部ファイルにしていると読み込みのコストも馬鹿にならないので、インラインで書く事もよくあります。なので、以下は主に数行程度のコードをインラインに書く場合の話です。 scriptタグの中に直にコードを書くときはscriptタグに非対応なブラウザのために<!--で始め*1 // -->で閉じるというノウハウは今でも結構使われているみたいです。 しかし

  • ECMAの読み方 - os0x.blog

    # なんかTwitter記法がうまく動いてないんだけど、なにが悪いのかわからない… この前の#orejsや今日の#hatenatechでも話題になっていたECMAの読みについて。*1 @Constellation: ECMAってすぐイーシーエムエーって読んでしまう... #orejs 2010-07-24 20:03:06 via Tween http://twitter.com/Constellation/status/19413623287 @rwest2112: いーしーえむえーっていうのか。。。ずっと絵熊って読んでた。「絵熊では…(キリッ)」なんて。orz (#hatenatech live at URL ) 2010-08-05 11:50:18 via Ustream.TV http://twitter.com/rwest2112/status/20355293935 どっちや

    ECMAの読み方 - os0x.blog
  • NinjaKit for Safari - os0x.blog

    NinjaKitのSafari版が一応できました。 NinjaKit - 0xFFからどうぞ。 注意点などはChrome版と同じです。ただ、GM_registerMenuCommand未対応なのと、オプションページを呼び出す方法がツールバーのボタンしかありません。このあたり、Safari版は右クリックメニューにしてみようかなと考えています(というか、今のところそれくらいしか候補がないので)。 とりあえず、手前ですがos0x's scripts - Userscripts.orgは動くと思います。

    NinjaKit for Safari - os0x.blog
  • Safari拡張の自動更新方法 - os0x.blog

    次のようなXMLを拡張子.plistで適当な名前で保存して、サーバーにアップします。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Extension Updates</key> <array> <dict> <key>CFBundleIdentifier</key> <string>net.os0x.autopatchwork</string> <key>Developer Identifier</key> <string>LAM47A73AC</string> <key>CFBundl

    Safari拡張の自動更新方法 - os0x.blog
  • NinjaKit - os0x.blog

    NinjaKit*1というChrome/Safari拡張を公開しました。 Chrome:Chrome Web Store - NinjaKit Safari:NinjaKit for Safari Source: os0x/NinjaKit · GitHub これはFirefoxのアドオンであるGreasemonkey相当の機能を実装することを目指しています。 今のところ、 GM_xmlhttpRequest GM_addStyle GM_getValue GM_setValue GM_deleteValue(new in ver 0.7) GM_listValues(new in ver 0.7) GM_log GM_openInTab GM_registerMenuCommand(Safari版は未サポート) Metadata @include @exclude @require @b

    NinjaKit - os0x.blog
  • Safari拡張の作り方 - os0x.blog

    Safari拡張をいくつか作って大体感覚は掴めたので、ざっくりと拡張の作成手順を解説してみます。 なお、Windows版で作業していますが、Macでもほとんど同じだと思います。 Safari拡張とは 最初に、Safari拡張とはなにか、について。Safari拡張はHTML/CSS/JavaScriptをベースに、ブラウザ側が用意したAPIを使ってブラウザを便利にするモジュールです。通常、JavaScriptだけではクロスドメインの問題など、実現できることに制限がありますが、その点を拡張用に用意されたAPIで補います。そのため、APIが用意されていない部分については対応できないという制限があります。しかし、開発のし易さ、ウェブとの親和性の高さからアイディア次第で便利で強力なツールとなるのがSafari拡張・Chrome拡張です。 なお、現状のAPIは暫定的なもので、ここで紹介するのもあくまで

    Safari拡張の作り方 - os0x.blog
  • Safari5の拡張作ってみた - os0x.blog

    Chrome拡張をとりあえず3つだけSafari拡張に移植というか、どちらでも動くようにしてみました。以下からインストールできると思いますが、今のところ拡張は頻繁にクラッシュしますし、正式リリースされてないということは色々と問題が残っているということですから、そのあたりをご理解の上、ご利用は自己責任でお願いします。 http://ss-o.net/safari/extension/AutoPatchWork.safariextz AutoPatchWorkのSafari拡張版。いわゆるAutoPagerizeクローン。アイコンの色がおかしい?アイコンの色は制限されているみたいです。ちょうどいい機会なのでアイコンを廃止してページの下にラインを出すようにしました。 http://ss-o.net/safari/extension/SocialCounter.safariextz SocialC

    Safari5の拡張作ってみた - os0x.blog
  • JavaScriptで3D - os0x.blog

    id:wanparkさんが(3年前に)書かれたchannel3というFlash用3DグラフィックライブラリをJavaScriptにポーティングしてみました。IEは未対応です(たぶんそのうち)。 channel3JS - ss-o.net この前のCanvasでDot3Dが結構余裕だったので、もうちょっと格的な(だけどライブラリとして大きすぎないような)のをポートしたくなったところにchannel3のことを思い出して、突貫でやってみました(コメントアウトいっぱいでソースは綺麗じゃないです)。 SVGとCanvas両対応です。なぜかというとパフォーマンスを比べたかった(SVGのほうが良い)のと、テクスチャやるにはCanvasが必要になりそうだから。 実はSVGほぼ初めて触ったんですが、面白いので後でまとめようと思います。 ソースは os0x / channel3JS / source — B

    JavaScriptで3D - os0x.blog
  • CSSセレクタの高速化の話を検証 - os0x.blog

    CSSセレクタの高速化の話し - Webtech Walkerの件。元ネタは続・ハイパフォーマンスWebサイト ―ウェブ高速化のベストプラクティスで、元ネタの元ネタはWriting Efficient CSS for use in the Mozilla UI - MDC。 先に書いておくと、この元ネタのMozillaの記事には、in the Mozilla UIとある通り、FirefoxなどのUIレベルの話です。Mozillaの場合、ウィンドウとかタブとか、とにかくなんでもCSSでスタイルを指定できる(している)のでCSSのパフォーマンスについて考慮する点が他のブラウザとはズレています。 とはいえ、実際にどうなのか検証したことなかったので、少し試してみました。 今回の検証方法は、dl>dt+ddを5重に入れ子にした300KB強の大きめなHTMLを用意して、CSSを動的に適用したときの時間

    CSSセレクタの高速化の話を検証 - os0x.blog
  • oAutoPagerize ver1.5.1 RC1 - os0x.blog

    Opera10.50 RCが出ましたが、「oAutoPagerizeが原因でフリーズするぞ、どうなってんだ」とのご指摘を頂きましたので、oAutoPagerizeもRC版をリリースしました。 というのも、Googleとか(いろんなサイトで)で落ちるって報告だったんですが、こちらではGoogleで落ちる気配はなく、代わりにAmazonでフリーズしました。で、Amazonではフリーズしないように対応したけど、Googleで落ちる人が落ちなくなったのかは確認できないのでわかりません。というわけで、問題なさそうならこのままで、まだ落ちるような何か対策すると思います(まさにRC版)。ただ、フリーズする原因もはっきりしたわけではないので、対応できるのか…。 ついでに、前回のGoogle画像検索対応をちょっと修正して9.6系でも動くようにしました。SITEINFOをローカルに書かなくしたので保守性もアッ

    oAutoPagerize ver1.5.1 RC1 - os0x.blog
  • ChromiumでVertical Tabsの試験的な実装が始まっている - os0x.blog

    少し前から、ChromiumOSのUIモックにSidetabバージョンがあったのですが、この実装が始まりました。 Issue 34509 - chromium - Vertical Tabs - An open-source browser project to help move the web forward. - Google Project Hosting ちょうど今日、 Issue 572041: Make basic side tabs actually appear. - Code Review と、なんだか少し動きそうなコミットがあったので、試しに404 Not Foundから、build 38321を入れて、enable-vertical-tabsオプション(とuser-data-dirも)を付けて起動してみました。 その結果がこちら まだちょっと早かったみたいです。これ

  • 複数のバージョンのGoogle Chromeを同時に動かす方法 - os0x.blog

    複数バージョンのChromeを同時に動かす方法は公式には用意されていませんが*1、割と簡単にバージョンごとのChromeを動かすことができます。 出典はGoogle Chromeを任意のフォルダにインストールする方法など: 夜明け前と2chChromeスレ*2からです。 インストールしたいバージョンのインストーラーを用意 4.0.249.30をインストールしたい場合、http://dl.google.com/chrome/install/249.30/chrome_installer.exe からダウンロードできます。 バージョン番号の後半2つをhttp://dl.google.com/chrome/install/xxx.xx/chrome_installer.exe のxxx.xxの部分に当てはめればそのバージョンがダウンロードできます。バージョン番号は後半2つだけでユニークになるよ

    複数のバージョンのGoogle Chromeを同時に動かす方法 - os0x.blog
  • oAutoPagerize ver1.5.0 - os0x.blog

    Google画像検索で動かなくなっていたのを修正。 ついでにFirefox3.6でも動くように。Firefoxで使っている人はいないかもしれないけど、Bookmarkletとしても使えるので一応。 あと繰り返しになるけど、Google Chrome4ではoAutoPagerizeは動かないので、Chrome Web Store - AutoPagerizeかChrome Web Store - AutoPatchWorkをどうぞ。拡張版の方が断然軽いです。 oAutoPagerize - 0xFF

    oAutoPagerize ver1.5.0 - os0x.blog
  • Chromeで読み込みに失敗した画像についてリファラを消して再読み込みを試みる方法 - os0x.blog

    [追記]実際に使用したい方は @civic さん作のLDR Image Loader extensionをどうぞ。 Chrome Dirty Hacks 01: fc2 image for LDR - 枕を欹てて聴くの別解みたいなのです。要は、livedoor Readerでfc2やアメブロの画像を表示してやろうというネタです。 まず、id:edvakfさんが実験していた edvakf's gist: 48621 — Gist から インラインフレームにdataスキームでhtmlを挿入するとlocationがそのdataスキーム自身になり、そこからのリクエストにはリファラがつかない というテクニックを応用して、さらに errorイベントキャプチャリングフェーズで監視*1して画像のerrorを捕捉 インラインフレームを作ってデータスキームのhtmlを挿入し、そのなかで読み込みに失敗した画像を

    Chromeで読み込みに失敗した画像についてリファラを消して再読み込みを試みる方法 - os0x.blog
  • oAutoPagerize ver1.4.0(Opera UniteのSITEINFOサーバー対応) - os0x.blog

    oAutoPagerize - 0xFF Opera Unite で SITEINFO サーバー - もし高校野球の女子マネージャーがOpera Browserを使ったら - チーム俺等のパッチを取り入れました。 SITEINFOサーバーの効果のほどは、0AutoPagerize.SITEINFO.jsとメモリ使用量 - もし高校野球の女子マネージャーがOpera Browserを使ったら - チーム俺等の通りで、体感的にもむしろ速くなるくらい。Opera 10.10をインストールしたら導入をお薦めです。 # なんかUniteはまだ先だろーと思ってたらそろそろリリースされそうですね。 とか言ってたら、ホントにリリースされました。Opera browser | Faster & safer internet | Free download

    oAutoPagerize ver1.4.0(Opera UniteのSITEINFOサーバー対応) - os0x.blog
    Watson
    Watson 2009/11/23