JavaScript 検討、全てのサイトでGM_xmlhttpRequestを使う 上記エントリのコードは脆弱で、GreasemonkeyのGM_xmlhttpRequestを予期しないコンテンツウィンドウから奪われる可能性があることを、Days on the Moonのnanto_viさんにメールにて教えていただきました。貴重なアドバイスを頂き、深く感謝しております。 具体的には、gmXMLHTTPRequestの__parent__プロパティから、Greasemonkeyスクリプトのコンテキストを取得され書き換え、APIキーをコンテンツウィンドウにコントロールし乗っ取ることができます。サンプルコードは以下です。 gmXMLHTTPRequest.__parent__.API_KEY = 'ABC'; GM_XHR_API_KEY = 'ABC'; gmXMLHTTPRequest({
2008年02月22日23:30 カテゴリLightweight Languages perl - モジュールと%INC うむむ、ちょっとload averageが高い日日が続いたせいか、久々に熱が。 こういう時にはこういうあまり心身を使わないネタを。 Perl モジュールのありかを調べる perlwhere - Tociyuki::Diary モジュールのパスをてっとり早く見つけるには、コア・モジュールの Module::Build::ModuleInfo が便利です。 Module::Buildがコア入りしたのは5.10からなので、他の方法を紹介しつつ、特殊変数%INCの紹介などを。 まず、モジュールのありかを手っ取り早く調べる方法としては、 % perldoc -ml が使える。PODが含まれてなくてもOK。 しかし、中級以上の perl monger を目指すのであれば、%INCの
モンテカルロ法の関数的プログラム (1) 前回、関数的な乱数生成器を作成しました。これを用いて関数的なモンテカルロ法のプログラムを作成することはそれほど難しくありません。 以下は、命令的プログラムを関数的な乱数生成器を用いて書き換えたものです。 def main (): print math.sqrt(6.0 / estimate(cesaro_test, 10000, RandState.new())) def estimate (test, times, rs): x, y = 0.0, 0.0 for i in xrange(0,times): b, rs = test(rs) if b: x = x + 1 y = y + 1 return x / y def cesaro_test (rs): x, rs = rand(rs) y, rs = rand(rs) return 1
複数のHostsファイル管理・切替が簡単に行えるFirefoxアドオン「SwitchHosts」 2009年10月19日- SwitchHosts :: Add-ons for Firefox 複数のHostsファイル管理・切替が簡単に行えるFirefoxアドオン「SwitchHosts」。 開発用のサーバにhosts設定して、本番と同じドメインでアクセスして開発しているような場合、このアドオンはなかなか使えそうです。 一応、知らない人のためにも、hosts の説明をしておくと、ドメインに対するIPアドレスの書き換えが出来ます。 例えば、phpspot.org の IP アドレスが 210.210.210.210 だったとして、200.200.200.200 に書き換えることができるものです。 200.200.200.200 のサーバが開発用のサーバだとすると、210.210.210.21
_ 言語開発合宿に参加しました 参加された方々の熱意にうたれました。準備をしてくださった方、場所を提供してくださった方に感謝します。ha-tanさんのウクレレが上手かったです。いいなあ。 言語開発合宿の中間報告、最終報告、成果物、言語開発合宿@ustream.tv と 言語開発合宿@Lingrに記録が残っています。 雰囲気とか、皆さんの過去のプロジェクトとかの紹介もあって、参加してよかったです。 私の目的は、関数型言語の lazy evaluation をどのように実装するかを理解することでした。以下の 4 つの文献を読むことで、多少なりとも理解が進みました。全部は読み終えていないので、完全な理解にはまだ至っていません。 jhcのソースコード。特に、Grin.FromE モジュール Urban Boquist, "Code Optimisation Techniques for Lazy
JavaScript 追記 3ダメやん、arguments.callee.caller.caller.callerで辿れる。あと、変数とかを渡すのも大変か。やっぱりGreasemonkeyスクリプトとも連携取れないからだめだよな。 追記 2あきらめかけたけど、こんなんどや。 safeCall(function(){ evil(); }) function safeCall(f){ delete unsafeWindow.GM_safeCall; window.location.href = "javascript:function GM_safeCall(f){eval('('+f.toString()+')()')}"; unsafeWindow.GM_safeCall(f) } テストコードは以下。 返り値は、値を置いて、すりかえられないようにすぐに取るかんじになるかなー。 こんなこ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く