タグ

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

  • 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
  • valueOfとtoStringとToPrimitive - os0x.blog

    valueOfとtoStringメソッドの水深43cmぐらいの深さの話 - 三等兵のもう少し深いお話。コメント欄に書こうかとも思ったけど、最近ブログ書いてない気がしたのでちゃんと記事にしてみる。 まずは問題です。次のコードを実行したときにtrueかfalseのどちらがalertされるかそれぞれ当ててみてください。 var date = new Date(); var date_string = date.toString(); var date_value = date.valueOf(); alert(date == date_string); alert(date == date_value); true, true false, false true, false false, true (難しい問題ではないと思いますが、)この問題の答えは最後に。 続いて、もっとシンプルな問題です。

    valueOfとtoStringとToPrimitive - os0x.blog
    voidy21
    voidy21 2010/09/17
  • プログラミングに最適なConsolasとかInconsolataとか - os0x.blog

    でInconsolataだけが紹介されているので、おまけ情報を少々。 Inconsolataというのは、Windows Vista/7 に標準で付属しているConsolasフォントに感銘を受けた作者がConsolasを意識して作ったフォントです。 ConsolasのほうはVista/7だけでなく、Visual Studioに付属してたりもします。一応、こちらからダウンロードもできるようです。 Download: Consolas Font Pack - Microsoft Download Center - Download Details Windows(少なくとも7では)ではConsolasのほうがより(ClearTypeの効きが)綺麗だと思います。というか、InconsolataはWindowsだとどうも今一つ…、ただMacLinuxではWindowsでのConsolasと同じくら

    プログラミングに最適なConsolasとかInconsolataとか - os0x.blog
    voidy21
    voidy21 2010/08/23
  • 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
    voidy21
    voidy21 2010/06/13
  • 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
    voidy21
    voidy21 2010/06/08
  • 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
    voidy21
    voidy21 2010/05/19
  • ブックマークレットサービス・Hatena::Let を使ってみた - os0x.blog

    ブックマークレットサービス・Hatena::Let を作りました - 2nd lifeとのことで、早速使ってみました。使い方はホント簡単でログインして作成ボタン押して書いたら公開するだけ(ブログに貼るには個別ページ下にあるiframeタグをそのまま使うだけ)。 とりあえず、oAutoPagerize もともとBookmarkletとして動くように作ってあるので、@requireにファイルを指定しただけ。 あと画像をポップアップに開いたり、 ページを画像だけに置き換えたりするヤツ*1 こっちはベタに書いてみたけど、そしたら外部JSを読みに行く形にはならなくて、無名関数とかも付加されていないみたい。短いときはこうなるのかな? 画像置き換えのBookmarkletは抽出条件を変えたり、一覧をCSSJavaScriptでギャラリーのような機能を追加したりと遊びがいがあるBookmarkletなの

    ブックマークレットサービス・Hatena::Let を使ってみた - os0x.blog
    voidy21
    voidy21 2010/05/17
  • 2つのChromeを共存させる方法(Google Chrome SxS) - os0x.blog

    複数のバージョンのGoogle Chromeを同時に動かす方法 - 0xFFでは、かなり強引にスタンドアローンなChromeを作る方法を紹介しましたが、最近(Issue 35574 - chromium - Add side by side distribution - An open-source browser project to help move the web forward. - Google Project Hosting )正式に2つのバージョンを同時に動かす実装が導入されたので、それを紹介します。 まず、今のところ共存できるのは2つまで、片方はdev版相当canary版*1という制限付きです。その点はご了承を。 Google Chrome - Get a fast new browser. For PC, Mac, and Linuxで専用のインストーラーが公開されてい

    2つのChromeを共存させる方法(Google Chrome SxS) - os0x.blog
    voidy21
    voidy21 2010/05/14
  • IEでpassword表示 - os0x.blog

    140文字以内でパスワード丸見え - latest log IE対応は結構面倒なんですよね。 まず、IEはinput要素のtypeを書き換えさせてくれないので次のようなスクリプトすら通らない。 var d=document.createElement('div'); d.innerHTML='<form name="f"><input type="text" name="t"></form>'; document.body.appendChild(d); var t=document.getElementsByName('t')[0]; alert(t.type);// -> text t.type='password';//ERROR! そこでouterHTMLで書き換えをする var d=document.createElement('div'); d.innerHTML='<form

    IEでpassword表示 - os0x.blog
  • クロスブラウザJavaScriptの連載始めました - os0x.blog

    これでできる! クロスブラウザJavaScript入門:第1回 ウェブブラウザとJavaScriptの未来|gihyo.jp … 技術評論社 gihyo.jpさんでクロスブラウザを扱った連載を始めました。JavaScriptを中心に、CSSなどの周辺の話や、その辺のバックグラウンドにある標準化の話題なども扱っていく予定です。 去年までは仕事でクロスブラウザに苦労し続けてきましたが、最近はChrome拡張のような特定環境でのJavaScriptを書くことが増えてきました。このままクロスブラウザ周りを忘れてしまうのも勿体無いなと思って、これまでのノウハウは出来る限り詰め込んでいこうと思っています。 当面は、前半は背景知識とかノウハウとかをコラム的に、後半は実際にコードを読むという流れでやっていこうと思っています。ネタのストックはかなりあるので、続けられるだけ続けようと思っていますので、よろしく

    クロスブラウザJavaScriptの連載始めました - os0x.blog
  • 複数のバージョンの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
  • Twitterで自分がブロックしているユーザーを確認するブックマークレット(とサービス) - os0x.blog

    Who I Block? by @arikfrでSign in with Twitterボタンをクリック→Twitterのサイトに飛ぶのでそこで拒否か許可を選択。whoiblockに戻るとブロックしているユーザーが表示される。こちらでは下記のようなブラウザの再起動みたいな手間もなく割と安全に確認できるはずです。ただ、このサービスを私とは一切関係がないので当に安全かどうかは(私は)保証できません。あしからず。 Twitterの仕様変更により、下記のブックマークレットは動作しません。 http://twitter.com/ を開いた状態で、下記をブラウザのアドレスバーに貼り付けて実行すると認証ダイアログが出るので、ユーザー名、パスワードを入力してください。サイドバーにユーザー名がずらっと出てくると思います(一人もブロックしてなければ何も出てきませんが)。 なお、一度認証を通すと、ブラウザを再

    Twitterで自分がブロックしているユーザーを確認するブックマークレット(とサービス) - os0x.blog
  • AutoPagerizeの動作の流れ - os0x.blog

    AutoPagerize くらいは - twwp宛て。 家swdyh版について(oAutoPagerizeも主な流れは同じだけど)、ざっくりと処理の流れを(細かいところやメインでない部分は省いています)。 ページの読み込み→Greasemonkey起動(この辺は省略)、AutoPagerize起動 SITEINFOの読み込み SITEINFOの期限が切れていた場合、wedataから最新を取得 URLにマッチするSITEINFOがあるかチェック、なければ終了 SITEINFOのXPathが機能しているかチェック、XPathで要素を取れなかったら終了 初期化処理 次のページのURL取得 差込位置の決定、insertBeforeか、pageElementの最後の次の要素 右上アイコン・ヘルプの設置 スクロール監視の開始 読み込み開始位置の決定(どこまでスクロールしたら次のページを読み込むかは、

    AutoPagerizeの動作の流れ - os0x.blog
  • Chrome Keyconfig ver 1.4.1をリリースしました - os0x.blog

    詳しい更新情報等は ChromeKeyconfig からどうぞ。以前のバージョンをインストールされている方は自動でアップデートされるはずです。 今回は、現状のChromeKeyconfigでどんなことが出来るのかざっくり解説します。 まず、メイン機能はキー入力へのアクションの割り当てです(いわゆるショートカットキー)。割り当て出来るアクションは、タブの開閉、隣接タブへの移動、URLに移動(ブックマークレットの実行も可能)、id:edvakfさん作のHit-A-Hintのほか、AutoPatchWorkとの連携なども可能です。 あえてデフォルトでは無効にしていますが、設定次第ではLDRizeやスムーズスクロールも可能です。 ショートカットキーはサイト側で設定されたキーとぶつかってしまう問題が良く起こりますが、その解決策として通常モードと制限モードという2つのモードを導入しています。デフォルト

    Chrome Keyconfig ver 1.4.1をリリースしました - os0x.blog
  • AutoPagerizeを軽量化するアイデア - 0xFF

    先に結論を言うと、AutoPagerizeは拡張版がオススメです。以下その理由と余談的なお話です。 拡張版のAutoPagerizeについてちょっと勘違いしてました。AutoPagerizeは軽量化できるという話に路線変更します。 AutoPagerizeってのは、次のページを今見ているページの下に継ぎ足して、ページ遷移することなく次のページを見ることができる、ブラウザの機能を拡張するスクリプトです。 このAutoPagerizeは派生スクリプトがたくさんあって、FirefoxだけでみてもGreasemonkey版のAutoPagerize(家)、cho45さんのjAutoPagerize、Add-onのAutoPagerize(家)、AutoPager(作者は日人ではなく、どちらかというと非日語圏向けかも)などなど。他にもかなりの数があります*1。 で、Opera、Google

    AutoPagerizeを軽量化するアイデア - 0xFF
  • id:mindcatさんのJavaScriptエントリに少しだけコメント - os0x.blog

    FAQ形式によるJavaScript質がわかる超入門 - 風と宇宙とプログラムが凄く良く出来てて、くやしい。じゃなくて、折角なので少しだけツッコミを。いや、これだけ完成度が高いのにツッコミというのも無粋ですが。 数値を文字列に、逆に文字を数値に変換する String(x)、Number(x)を推奨されていますが、一応、IE6ではパフォーマンスに差が出る点に注意が必要だと思います。 to_string (関数呼び出しのコストのため)IE6だとこのように結構な差がでます。(といっても10万回での結果ですが。) "" + 78ms "" + 63ms String() 125ms String() 125ms確かにChromeなどString()のほうが少しだけ速いみたいなので、ケースバイケースですね。 JavaScriptで ""+x を文字列変換に使うのは気持ち悪い - 風と宇宙とプログ

    id:mindcatさんのJavaScriptエントリに少しだけコメント - os0x.blog
  • Googleのトップページを開くと毎秒100回実行されるスクリプトを止めるユーザースクリプト - os0x.blog

    Googleのトップページを開くと毎秒100回JavaScriptが実行されるよ - 射撃しつつ前転をみて、ちょっとソース読んでみたらホントにそんな実装になっていた。んじゃ、止めちゃいますかってことで、サジェスト自体はそのまま機能させつつ、IMEでの確定前の入力には反応しないという実装に無理やり変えるスクリプトを書きました。一応動作を確認したのはFirefox3.5(Greasemokey 0.8)、Opera10、Google Chrome Dev(4.0.213.1)です。GreaseKitは実行タイミングの問題で怪しいかも。 404 Not Found – Userscripts.org ちなみに、なんでGoogleはポーリングをしているかっていうと、IMEが確定する前の入力途中のキーワードを捕まえるためのようです。そこまでする必要ないよって人も多そうですよね。そういう人向けのスクリ

    Googleのトップページを開くと毎秒100回実行されるスクリプトを止めるユーザースクリプト - os0x.blog
  • AutoPagerizeで継ぎ足された部分に自分のスクリプトを適用する方法あれこれ - os0x.blog

    以前からある手法から順番に見ていきます。 ページの高さの監視 setIntervalでページの高さを監視して、増えていたらAutoPagerizeが動いたとみなして処理を行う var THRESHOLD = 300; var _height = window.innerHeight; setInterval(function(){ if (window.innerHeight - _height > THRESHOLD) { // 処理 } _height = window.innerHeight; }, 300); メリット AutoPagerizeだけでなく、はてなダイアリー・ブックマーク、Twitterなどでのサイト側でのページの継ぎ足しにも対応できる デメリット THRESHOLDをいくつにするかなど、一概に決められない。タイマーをたくさん回すと重くなる。Floatしている要素を継

    AutoPagerizeで継ぎ足された部分に自分のスクリプトを適用する方法あれこれ - os0x.blog
  • IEでのテキストノード走査の高速化 - os0x.blog

    に釣られて。 HatenaStar.js 1380 行目 テキストノード走査 一番のボトルネックはやはりここですね。IEなので、こんな感じでベタに計測。 makeTextNodes: function(c) { if (c.textNodes || c.textNodePositions || c.documentText) return; if (Ten.Highlight.highlighted) Ten.Highlight.highlighted.hide(); c.textNodes = []; c.textNodePositions = []; var isIE = navigator.userAgent.indexOf('MSIE') != -1; var texts = []; var pos = 0; var st = new Date*1; (function(node,

    IEでのテキストノード走査の高速化 - os0x.blog
  • 1