タグ

ブックマーク / labs.gmo.jp (10)

  • JavaScript-XPathでXPathが評価される様子を視覚化する - bits and bytes

    AutoPagerizeやLDRizeなどのスクリプトで、ページごとの構造を記述するSITEINFOに書くXPathは、どう書いたら速いのかが話題にのぼっていたので、JavaScript-XPathを使ってXPathがDOMツリーから要素を見つけ出す雰囲気を視覚化してみました。JavaScript-XPathが各ロケーションステップで要素がマッチするかどうかをテストするときに呼ばれている(んだと思う)attrMatchという関数の引数に渡される要素をロギングして、そのデータをもとにちょっと時間をずらしながら要素をハイライトしています。 前置き あくまでJavaScript-XPathでattrMatchが呼ばれている要素を視覚化したものです。実際のXPath実装とは異なります。JavaScript-XPathではdescendant::*((//*))の評価をgetElementsByTa

    nitoyon
    nitoyon 2008/04/10
    XPath の評価を可視化する試み。
  • Firefox3でSQLite3の全文検索機能を使って日本語を検索する - bits and bytes

    mal_blue@tumblrでFirefox3に載っているSQLiteに全文検索機能がついたのを知りました。昨年12月にGoogle Japan Blog: Google デベロッパー交流会 ( 第 4 回 )に参加させていただいたとき、Google Gearsの開発者がGoogle Gearsでサポートされているlocal storage(実体はsqliteのデータベースでSQLを使ってデータを読み書きできます)について非ASCIIのfull-text searchをサポートしたいと言われていたのを思い出しました。 その後どうなったかなー、と思ってちょっと検索してみたらGoogle Gearsと直接関係ないけどSQLite Full Text Search with MeCab - mynoteという記事が。この記事はSQLiteのCのAPIにはtokenizerを指定することができて

    nitoyon
    nitoyon 2008/03/21
    全文検索 on Firefox3
  • Firefox3のクロスサイトXMLHttpRequestの仕様 - bits and bytes

    補足 2008.3.28 Cross Site XMLHttpRequest (XHR) Removed From Firefox 3 | Robert Accettura’s Fun With Wordageによると、最近XMLHttpRequestの仕様ドラフトに変更があり、Firefox3のリリース(今のところ6月の予定だとどこかで読みました)には実装が間に合わなそうなので、Firefox3の初期バージョンにはCross Site XMLHttpRequestは載らないことになったそうです。 Firefox3ではドメインが異なっていてもXMLHttpRequestでリクエストが出せるのをmal_blue@tumblrで知りました。 すごいじゃーんというわけでJohn Resig - Cross-Site XMLHttpRequestに書かれている使いかたを参考にちょっといじってみま

    nitoyon
    nitoyon 2008/01/18
    cross-domain XHR についての説明。
  • OperaのFast Forwardはどうやって次のページを決定しているのか - bits and bytes

    Operaはその独特なUIになじめなくてほとんどつかったことがないのですが、先日OperaにはFast Forwardという他のブラウザにはない機能があるのを知りました。 Fast Forwardはおおざっぱにいうと、ページが一番下までスクロールしているときにスペースキーを押すと、自動的にページの中から次のページだと思われるリンクを探してそのリンクの先をロードするという機能です。ひとが各サイトごとに手で記述したSITEINFOを外部から持ってきるAutoPagerizeとは違って、Operaに組み込まれたプログラムとデータを用いて次のページを表示するので、すべてのページで機能します。ただしAutoPagerizeのようにページが継ぎ足されていくのではなく、次のページ全体が今見ているウインドウにロードされます。 Fast Forwardについて詳しいことはFast Forward for q

    nitoyon
    nitoyon 2007/10/25
    OperaネイティブのAutoPagerize風機能の実現方法。 <link rel="next">がなければ、「Next」「次へ」といったリンクを拾っている。意外といけてるらしい。
  • FirefoxのsetTimeoutの実装 - bits and bytes

    Firefoxのソースコードを追っているうちに、たまたま1年遅れで IT戦記 - JavaScript を学ぶ際に一番重要なのに、誤解されがちな setTimeout 系の概念 の裏側がどうなっているかがわかったので、その話を。 タイマーの管理方法 そもそもjavascriptからsetTimeoutを呼ぶと、どういう仕組みで指定した時間後に渡した関数が呼び出されるようになっているのでしょう。Linuxであればsleepのように一定時間後にawakeするという処理は、タイマーリストによって管理されています。カーネルの中にN jiffies(LinuxのOS内時間の単位はjiffyと呼ぶそうです)経過後に実行することリストがあって、カーネルが4msごとに毎回タイマーリストをチェックしてやることがあったときにはそれを実行しています。 FirefoxもLinuxと同じようにタイマーリストみたいな

    nitoyon
    nitoyon 2007/09/07
    setTimeout の実装。だいたい想像通り。
  • FirefoxのE4XはXPathより便利? - bits and bytes

    つい最近FirefoxのXMLオブジェクトがすごく便利なのを知りました。そして、そのXMLオブジェクトサポートのことをE4X(ECMAScript for XML)と呼んでいたというのを今知りました.... E4Xについては ECMAScript for XML (E4X) 仕様邦訳 を翻訳された nanto_viさんが書かれている E4X in Firefox が詳しいです。 しょせんはさっきE4Xがなんなのかを知った程度なのでちゃんとしたことは他のページを参照していただくことにして、11.2 左辺式 に書かれているアクセサと選別述語演算子でXPathと同じようなことができて、それがXPath以上に便利なところがありますよ、というはなしだけ書こうと思います。 E4XについてECMAScript for XML (E4X) 仕様邦訳序文には このプログラミング言語拡張は、世界中のもっとも大

    nitoyon
    nitoyon 2007/08/26
    E4X の解説記事。←オブジェクトっぽく使えるのが気持ちいいですよね。
  • FirefoxのlivehttpheadersでHTTPリクエストの中身が見られるしくみ - bits and bytes

    サーバに送っているHTTPリクエストのヘッダやレスポンスのヘッダが見られるFirefoxのextension livehttpheaders がどうやってこの機能を実現しているのか調べてみました。 HTTPリクエストを送るタイミングでイベントを捕まえることができるんだろうと予想して探してみるとLiveHTTPHeaders.jsの43行めからのaddToListener()に function addToListener(obj) { ... snip ... // Should be a new version of Mozilla/Phoenix (after september 15, 2003) var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Compone

    nitoyon
    nitoyon 2007/08/19
    Firebug の Net タブもこの仕組みを使ってるんだろうな。
  • gmailで添付ファイルが自動でアップロードされるしくみ - bits and bytes

    gmailでメールを書くとき、添付するファイルを選んでからしばらくすると、いつの間にか添付ファイルがアップロードされています。 添付するファイルを選ぶと、はじめファイル名が表示されていたのが 自動的にアップロードされて、名前とファイルサイズが表示されています! 実は、あまり名前も聞かなくなった Google Page Creator がリリースされたときにいちばんびっくりしたのはページの右下にこのgmailの自動アップロードとよく似たしくみがあったことでした。で、さっそく解析してマネしてみたことがあります。今回はgmailでその仕組みを見てみます。 ちなみにその Google Page Creator には、ログインすると右下にこんな ファイルをアップロードするのに使う部分があります。 gmailの場合、メールが自動保存されるタイミングでアップロードされているかんじでしたが、こっちのはBr

    nitoyon
    nitoyon 2007/05/26
    隠しframeにpostして、表示を切り替える。
  • twitterのコマンドラインクライアント - bits and bytes

    メッセンジャーのステータスを使って、今何をしているか、を伝えるのはよくやっていた。特に自分の場合ひとにかまってほしいほうなのでこの手のやつに人気が出るのはうれしい。twitterは、メッセンジャーのステータスのログがブログとして残って、ともだちのステータスが一覧で見られる、ようなサービスです。Tumblr 小さくてきれいなブロギングツール で書いていた Tumblr とおんなじように、ほんの少しの手間でほんの少しのエントリを投稿して、そのときの気持ちのような空気のようなものを伝えることができます。 そんなちょっとしたことをポストするのに、わざわざtwitterのサイトに行って今何をしているのか書くなんてオーバーヘッドが大きすぎる!というわけで Bin-Blog: Using Twitter, Part 1 - Command Line Twitter Client でコマンドラインからtw

    nitoyon
    nitoyon 2007/04/04
    curl から twitter の URL をはたく。
  • FUSEを使ってはてなブックマークから POOKMARK Airlines へ乗り換える方法 - bits and bytes

    Google Code で macfuse がリリースされたのをきっかけに、FUSEをみんながおもちゃにするに違いないと思ったのにだれもおもちゃにしていないみたいで、くやしかったので自分でおもちゃにしてみました。 FUSEの利点は、ファイルシステムという今まで数十年間使われてきた標準的なインターフェイスに任意のサービスをマッピングできるということにあります。数十年間、ファイルシステム上でファイルを扱うために様々なツールが開発されてきました。ファイルシステムにサービスをマッピングできるということは、数十年間蓄積されてきたファイルを扱うためのツールをそのままサービスを扱うためのツールとして利用できるということです。 例として WikipediaFS, view and edit Wikipedia articles as if they were real files を見てみましょう。このw

    nitoyon
    nitoyon 2007/02/04
    WebサービスをローカルのFSとして扱うライブラリ FUSE の紹介。Windows版もできたらおもしろいのに。WebDAVで実装したら、全OS共通でいけそうなのに。
  • 1