タグ

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

  • E4Xっぽい記述でXPath式の文字列を作るXPathBuilder - bits and bytes

    AutoPagerize IDEのように、ある条件を元にXPathを生成するようなコードは、とりあえずふつうに書くと var attribute = "class"; var nodeName = "div" var value = "main"; "/" + nodeName + "[contains(@" + attribute +",'" + value + "')]" のような何を書いてるのかわからないようなコードになってしまいます(AutoPagerizeもこんなかんじになってます)。 SQLであればDBIx::ClassをはじめとしてORマッパがあって $self->{schema}->resultset('Recents')->select( { id => 4000, } ); と書いたものを SELECT * FROM recents me WHERE ( ( me.id

    hiro_y
    hiro_y 2007/11/17
    E4Xっぽい記述をするとXPathの文字列を返してくれるライブラリ。
  • FirefoxのsetTimeoutの実装 - bits and bytes

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

    hiro_y
    hiro_y 2007/09/07
    Firefoxにおける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) 仕様邦訳序文には このプログラミング言語拡張は、世界中のもっとも大

    hiro_y
    hiro_y 2007/08/26
    E4Xは便利。
  • gmailで添付ファイルが自動でアップロードされるしくみ - bits and bytes

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

    hiro_y
    hiro_y 2007/05/27
    ファイルを自動アップロード、iframeをtargetにしたformを自動submit。
  • ファイルの先頭8バイトだけで画像のフォーマットを調べる - bits and bytes

    PHPでファイルをアップロードしたとき $_FILES にアップロードされたファイルについての情報が入っています。 そして $_FILES[...]['type'] にはアップロードされたファイルの MIME type が入っています。しかしここに入っている値は PHP: ファイルアップロードの処理 - Manual に $_FILES['userfile']['type'] ファイルの MIME 型。ただし、ブラウザがこの情報を提供する場合。 例えば、"image/gif" のようになります。 この MIME 型は PHP 側ではチェックされません。そのため、 この値は信用できません。 と書かれている通り信頼できません。ソースコードを見てみると php-5.1.4/main/rfc1867.c の SAPI_API SAPI_POST_HANDLER_FUNC(rfc1867_post

    hiro_y
    hiro_y 2007/05/19
    画像の先頭8バイトを読んで画像のフォーマットを判別。
  • IEでjavascriptのエラーをデバッグする方法 - bits and bytes

    FirefoxであればFirebugで簡単に問題の場所をみつけられますが、IEでjavascriptのエラーが出ると、素っ気ないうえに意味不明な日語のエラーメッセージが出てきてお手上げなので、エラーが出ている場所の特定すら困難です。 そんなときでもOfficeについているスクリプトエディタ(前はスクリプトデバッガという名前だった気が....)を使うと、Visual Studioのデバッガとおんなじインターフェイスのデバッガを使ってjavascriptのエラーを出している場所をすぐに見つけることができます。Firebugと比べると極めて重たいですが、関数呼び出しをバックトレースすることもできますし、各スコープでの変数の値を調べることもできるので、これを使わない手はありません。 が、いつもどうやってインストールするのかを忘れてしまうのでメモ代わりに書いておきます。 コントロールバネルのプロ

    hiro_y
    hiro_y 2007/03/19
    Officeのwebデバッグツールを利用してIEでJavaScriptのデバッグを。
  • google code でFUSEのOSXバージョンmacFUSEがリリースされる - to the early (earliest) adopters - bits and bytes

    google code でFUSEのOSXバージョンmacFUSEがリリースされる - to the early (earliest) adopters なぜいまさらwindowsのドライバ開発なのか - bits and bytes で触れていたFUSEのOSXバージョンがリリースされました。それもgoogleから!Google Code Blog で MacFUSE: FUSE for Mac OS X というポストが出ていて知りました。 簡単にFUSEを説明すると、いろんなサービスを仮想的にディレクトリやファイルとして、ファインダー(OSXでいうwindowsのエクスプローラです)から操作するようなプログラムを簡単に作るためのものです。FUSEなしでサービスを仮想的にディレクトリとしてみせるようなものを作ろうとすると、デバイスドライバの知識が必要になり非常に困難なのですがFUSEがあ

    hiro_y
    hiro_y 2007/02/04
    macFUSEについて。
  • FUSEを使ってはてなブックマークから POOKMARK Airlines へ乗り換える方法 - bits and bytes

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

    hiro_y
    hiro_y 2007/02/04
    「FUSEの利点は、ファイルシステムという今まで数十年間使われてきた標準的なインターフェイスに任意のサービスをマッピングできるということにあります。」
  • 1