タグ

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

  • TheSchwartzで仕事をあとにまわす - bits and bytes

    web2.0 時代のジョブキューサーバー Gearman と TheSchwartz の関係について - TokuLog 改めB日記に書かれているとおり、Gearmanは仕事を投げられたらすぐやって返す前提になっていて今やりたくないけどあとでやるみたいなのができません。 たとえば、10分後にならできるんだけど、という仕事が来たとします。 このときGearmanのワーカの中でsleepして10分待つと、後から来たほかの仕事を一切しないで10分待つことになってしまって、後から来た仕事が今すぐできるものだったとしても10分待たれさるのでGearmanだと今来た仕事のためにsleepして待つわけにはいきません。 結果としてGearmanだとやってきた仕事を今すぐやるか、絶対やらないか、の二択になってしまいます。 それだと困るので、もう一方のTheSchwartzだと、今やりたくないけどあとでやる、

  • デスクトップアプリケーションにも広がりはじめたマッシュアップ - bits and bytes

    このブログははじめWindowsタグが大きかったのに、いつのまにかFirefoxタグが大きくなっていてちょっとつまらないので、今日はFirefoxから離れてブラジルのバス路線図サイト= Vou.de.Bus = você na rota certa!について書くか、みためがきれいなだけのURL短縮サービスsoo.in - URL Shortenerについて書くか迷ったりしましたが、最近ローカルのデスクトップアプリケーション上でのマッシュアップ、マッシュアップツールが目についたのでそれについて書いてみます。 マッシュアップツールとひとくくりにしていますが マッシュアップツール(と呼ばれるもの)の比較 - bits and bytes で書いたように、いままでのマッシュアップツールと呼ばれていたものには大きくわけて3種類があります。 データを取り出すためのもの データを加工するためのもの デー

  • FirefoxのsetTimeoutの実装 - bits and bytes

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

  • 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

  • gmailで添付ファイルが自動でアップロードされるしくみ - bits and bytes

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

  • FirefoxのhtmlparserをXPCOM経由で呼び出して壊れたHTMLを修復する - bits and bytes

    dapper のように、ブラウザでクリックをしたところをスクレイプする、というときにはXPathが向いています。ブラウザでクリックした部分のXPathをサーバに保存しておけば、あとで保存したXPathに従ってドキュメントからエレメントを取り出すことができます。 しかし実際にHTMLからXPathを使ってエレメントを取り出すときに大きな問題になるのが、ウェブページの大半(体感で70%くらい)は記述されているHTMLが構造的に壊れているという事実です。タグを開いたまま閉じていなかったり、開いていないものを閉じていたり、ドキュメントの最後に</body></html>が二重に入っていたり、壊れかたは様々ですが、とにかくウェブ上のHTMLは大半が壊れています。壊れているHTMLが大半だからなのか、壊れているHTMLでもブラウザが適当に解釈して表示してくれるからなのか、とにかく世の中のヘージの大半

  • cookieのサイズはパフォーマンスに影響を与えるか - bits and bytes

    私は "回線が早くなった現在、データの転送よりもコネクションの確立にかかるオーバーヘッドの方が大きい" という根拠のない信念を持っています。 だから、今ではバイト数を節約するよりも、Vitamin Features » Serving JavaScript Fast のような方法でコネクションを抑えることのほうが速度的には効果があるだろう、考えていました。 そんなところに おぎろぐはてな - Cookieがパフォーマンスに与える影響 経由で Performance Research, Part 3: When the Cookie Crumbles » Yahoo! User Interface Blog に、クッキー500バイトでレスポンスを15ms改善できるという記事を見つけて、単純に500バイトを15msで割ったら300Kbps程度で日じゃあり得ない遅さですが、小さいファイルの場

  • 1