タグ

ブックマーク / ido.nu (13)

  • 文字列からDOMの構築にかかる時間 « ku

    tumblr経由でGreasemonkeyスクリプトのGM_xmlhttpRequestとかで取得したhtmlとかxmlをいじる場合はxpathだと遅いことが多いかも - さらさら宇宙忍法帖を読んで というのと、実際の時間は2000ms vs 200msほどなんで、2秒待てる処理なら多少遅くたっていいじゃん、ってのもあるかもしれないです。いや2秒と0.2秒は体感できる違いだなぁ。。 体感でさすがに2秒もかかってない気がした(DOMの構築は同期的に行われるのでその間UIがフリーズするはずだけど、そういうストレスを感じてない)けどどれくらいかかっているのかも知らなかったので調べてみました。 実験 評価環境 2.16GHz/Core2Duo OSX10.4+Firefox3beta3 評価方法 AutoPagerize 0.23で文字列からDOMを構築しているcreateHTMLDocument

    gotin
    gotin 2008/03/05
    (訂正)件の記事はたしかdiv要素か何かにinnerHTMLで無理矢理つっこんで、そこからXPathで中身をとってくる処理を計測してた気がします。計測につかったコード残しておくべきでした><
  • ふつうの非同期関数をDeferredにする方法 « ku

    2007.12.7 追記 MochiKitのドキュメントではないですがTwisted ドキュメント: Deferred の作り方が参考になります。 にわかDeferred信者になったもののMochiKit.Async.DeferredではXMLHttpRequestしか提供していないのでGreasemonkeyの中でGM_xmlhttpRequestや、拡張のコンテキストでnsIChannel#asyncOpenで使おうと思うととたんに困るのでした。DeferredはDeferred管理でない非同期の関数と一緒に使うととたんに破綻します。 GM_xmlhttpRequestはインターフェイスは似ているので(中身は同じなので当然)Curiosity is bliss: XMLHttpRequest - Security Bypassを使ってMochiKit.Async.Deferred.ge

  • Gyazo tumblr OSX « ku

    youhei’s bookmarks on del.icio.usで 自分ならgyazoのポスト先をいじる。でもポスト先にAPIとかがない場合、ブラウザでやらないといろいろ面倒。ブラウザを使いこなしてる感じがいい。 というコメントをいただいて、自分でもJSActions体のインストールのしかたとかスクリプトのインストールのしかたとか難しくて困ったりするところがGyazoだとかんたんになるし、なによりFirefoxのCanvasを読み出してるcapture.*.jsだと映ってくれないFlashの中身が映るので、ほんとGyazoハックしたいと思ってたんですがrubyわかんないしなーとおもってだけどやってみたらかんたんでした。ローカルアプリケーションの文字通りなんでもできるパワーとウェブアプリケーションのお手軽さをセットにしたサービスについて前にどこかに書いた気がするけどGyazoはそのパワー

  • capture.tumblr.js ブラウザでキャプチャしてtumblrにpostするJSActionsスクリプト v.0.0.1a « ZeroMemory

    ブラウザでキャプチャしてアップロードするJSActionsスクリプトシリーズのtumblrにアップロードするバージョンです。jsactions_2007112102a1対応ずみ。 ダウンロード capture.tumblr.js History 2008.3.1 0.0.1b capture.tumblr.jsをgelato対応に: dara-jで指摘していただいたstream_params.filenameの修正。 2007.12.3 0.0.1a キャプチャにcaptionがつかなかったのを修正。 インストール ダウンロードしたcapture.tumblr.jsをJSActionsのglobalフォルダに保存してください。次に、そのひとつ上のフォルダ(JSActionsのglobalとかselectionとかのフォルダがあるフォルダです)に capture.tumblr.conf とい

  • chrome特権つきのLDRize Minibufferコマンドを作る « ku

    2007.11.13 追記 すいませんこれちょっとうまくいかないかもです。 non-privilegedの関数からだとprivilegedで定義された関数のなかでも制約があるみたいです。 やっとGreasemonkeyスクリプトのsandboxオブジェクトにFirefox extensionから簡単にアクセスする方法をひねり出した。まだ何も実装していないけれど、これでMinibufferから pinned-node | images | save-as localdisk で、ピンをつけたparagraphの中にある画像をローカルに保存する、とか pinned-node | images | save-as flickr それをFlickrにアップロードするみたいなコマンドを実装することができるようになる。 Greasemonkeyスクリプトのsandbox Greasemonkeyはg

  • Greasemonkeyに拡張機能でないとできないことをする関数を追加するPrivilegedMonkey

    chrome特権つきのLDRize Minibufferコマンドを作るでちょこっと書いてたやつですが、とりあえずファイルをローカルに保存するやつだけ完成させました。 GreasemonkeyからGoogle Gearsの機能を利用するGearsMonkeyと似たアプローチなのでPrivilegedMonkeyという名前にしました。 インストール for Firefox2 PrivilegedMonkey v.0.0.1 for Firefox3 PrivilegedMonkey v.0.0.3 使い方 PrivilegedMonkeyをインストールするとMinibufferにsave.localというコマンドが追加されます。 stdinにはURLを持っているXPathのAttrオブジェクトもしくは、URLの文字列(まはたtoString()でURLになるもの)を渡します。 今回はフランス語

  • FirebugのXPath関連関数でエレメントからXPathを作る « ku

    AutoPagerize用のXPathをかんたんに作るためのブックマークレット AutoPagerize IDE - bits and bytesみたいに、ブラウザ上でクリックした要素を表すXPathがほしいことがよくある。perlだったらこないだのXML::LibXML::ElementのnodePathでおしまい。 jsだとFirebugが中にそういうのを持ってる。コンソールに出力されたHTML要素の上にマウスを持っていくと、その要素を表すXPathが表示されるやつ。 extensionからだったらFirebugLib経由で呼び出すことができます。 /** * Gets an XPath for an element which describes its hierarchical location. */ this.getElementXPath = function(element

    gotin
    gotin 2007/10/26
  • 拡張機能でmultipart/form-dataをPOSTするためのスクリプト PostFormMultipart.js « ku

    拡張機能内でGET/POSTをするのはXmlHttpRequestがお手軽ですが、ファイルのアップロードはできないのでファイルのアップロードをしたいときは努力が必要です。 前にソースコードを追ってFirefox内部でどうやってファイルをアップロードしてるのか調べたのですが、地味にふつうにアップロードしていたのでまねしてPostFormMultipart.jsというのを書きました。 今思うとFlock - The Social Web Browserからファイルをアップロードしているコードを探せば見つかったと思います。 2007.10.23 もうちょっとほかから使いやすいように修正。 Technorati Tags: javascript You’re currently reading “拡張機能でmultipart/form-dataをPOSTするためのスクリプト PostFormMul

  • diff O(np) javascript implementation « ku

    昔文書比較アルゴリズムで書かれている G.Myers, W.Miller, An O(NP) Sequence Comparison Algorith をSTLで実装したもの(Edit Distance固定のてきとうなもの)をjavascriptで書き直した。 /* Copyright (c) 2007, KUMAGAI Kentaro Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of

  • javascript 1.6の新しいArrayメソッド « ku

    名前がいつも思い出せないので Firefox 1.5 の JavaScript の主な変更点: Days on the Moon 経由 Core JavaScript 1.5 Reference:Global Objects:Array - MDC を参考にリストにしておく。 filter var filteredArray = array.filter(callback[, thisObject]); callbackでtrueを返したものだけのArrayを新しくつくって返す。perlのgrep相当。 >>> [1,2,4,8,16].filter( function (n) { return n > 4} ); [8, 16] forEach array.forEach(callback[, thisObject]); callbackを呼ぶのみ。値は返さない。 every var

  • capture.atom.js ブラウザでキャプチャしてはてなフォトライフにアップロードするJSActionsスクリプト v.0.0.2b « ku

    Share On Tumblr! するときに、サイトのロゴとかはだいたいタグの背景画像として設定されていているので選択できないし、さらに特定の背景色を前提にして画像が作られていたりするのでブラウザでレンダリングした状態でないときれいに表示されないので、ブラウザ上でスクリーンショットをとって、それをそのままatomでアップロードするJSActionsスクリプトをつくりました。 2007.12.1 v.0.0.2b jsactions_2007112102a1で動かなくなっていたのを修正しました。 2007.11.29 v.0.0.2a Firebugがインストールされていないときにエラーが出ることがあるのを修正しました。あと文中で設定ファイルをcapture.conf.jsにしてくださいと書いていたところがあったのは間違いで正しくはcapture.atom.confでした。taizoooさ

  • MySpaceのMP3ファイルにID3tagを埋め込みつつダウンロードするJSActionsスクリプト version.0.0.6 « ku

    戦争 - MySpace、MP3ファイルへのリンクを表示するGreasemonkeyスクリプト でmp3ファイルはダウンロードできるけど、ストリーミング用のmp3だからか曲情報が何も入っていないのでダウンロードするときに埋め込んでくれるJSActionsスクリプトをつくりました。 version 0.0.5でFirefox3に対応しました。 以前のバージョンのものはFirefox3のnsIDownloadManagerの仕様変更で動かなくなっています。 ごめんなさい0.0.5はダウンロードがちゃんと完了しない状態になっていました。0.0.6をお使いください。 id3v23.js (version 0.0.6) 上の myspaceaddmp3links.user.js 必須です。このスクリプトが表示してくれるリンクをもとに動作しているのでないと動きません。id3v23.jsはJSActi

  • かんたんすぎ かっこよすぎ Yahoo pipes « ku

    yahooyahooには似合わないくらいにかっこいいサービスを出した。その名も Pipes: Rewire the web とすごいサブタイトルがついています。rewriteはいい過ぎだけど。(よくみたらrewriteじゃなくてrewireだった) Pipes is a hosted service that lets you remix feeds and create new data mashups in a visual programming environment. と書いてあって、要するにフィードを混ぜたりするツール。UNIXのようにXMLデータをパイプをつないで処理したりできると便利だよね、というのは IBM dW : XML : XMLの論考: マイクロフォーマットのパイプストリーム - Japan にも書かれていた話。IBM dW の話は一般的なXMLの話で、行を単

    gotin
    gotin 2007/02/09
  • 1