2007-11-06
Firebug 1.2 のバグ
ブラウザを再起動したら Firebug 1.2 が起動しなくなったので
調べてみた><
原因はファイルのパーミッション
Index: branches/firebug1.2/components/firebug-service.js =================================================================== --- branches/firebug1.2/components/firebug-service.js (リビジョン 265) +++ branches/firebug1.2/components/firebug-service.js (作業コピー) @@ -2383,7 +2383,7 @@ file.append("firebug-service-dump.txt"); //file.createUnique(CI("nsIFile").NORMAL_FILE_TYPE, 0666); var stream = CC("@mozilla.org/network/file-output-stream;1").createInstance(CI("nsIFileOutputStream")); - stream.init(file, 0x04 | 0x08 | 0x20, 664, 0); // write, create, truncate + stream.init(file, 0x04 | 0x08 | 0x20, 0664, 0); // write, create, truncate return stream; } catch (exc)
664 が十進数で 0644 が八進数というオチ。
Firebug 1.2 を使ってみた。
GranParadaiso で作業してて
- おいおい。 Firebug 対応してねーよー。
- ちょっとソース見てみるかあ
chrome からコンテンツにプロパティを設定できなくなっちゃった見たい。。。
win.hoge = hoge; // <- win はコンテンツの window win.location = "javascript: eval(hoge)"; // <- hoge がないって怒られる
みたいなところが動かなくなってるみたい><
で、リポジトリを除いてみたら
branches/firebug1.2 ってのがあった
さっそくビルド
$ svn co http://fbug.googlecode.com/svn/branches/firebug1.2 $ cd firebug1.2 $ ant
で
firebug1.2/dist に xpi が出来てるので、それを Firefox で開く
動いたー!
ちょっと気になったのでソースを見てみたら
var sandbox = new Components.utils.Sandbox(win); var sandbox.hoge = hoge; Components.utils.evalInSandbox('alert(hoge)', sandbox);
こんな感じで Components.utils.Sandbox というのを使っていました。
ただ
これを使うと、var 宣言された変数は sandbox オブジェクトのプロパティになってしまう(グローバルオブジェクトは win だけど)ので、そこだけ注意が必要。
今まで、コンソール上で var したらそのままコンテンツでも変数になったけど、 Firebug 1.2 では window.hoge = 'hoge'; のようにして変数を追加しない限りコンテンツは汚れない。
駄文 - プログラミングと Shell
(ダラダラと書く)
もっぱら id:lovecall さんが注目されていますが、
こっちも cho45 が先生(?)なので間違いないhttp://d.hatena.ne.jp/dropdb/searchdiary?word=%2a%5bRuby%5d
で、
しょっぱな Cygwin に苦戦してるみたい
うーん でもコマンドプロントとの違い、良さがわかりません・・・のです・・・
http://d.hatena.ne.jp/dropdb/20071105#p5
最初に Cygwin を入れさせるとは、さすが cho45 だなあと思った
Cygwin の良さと自分の経験
僕は Windows をやめて Linux (のちに Mac) を使い始めてから、プログラミングの学習速度が飛躍的に伸びた。
その原因は間違いなく、 GUI -> CUI つまり Explorer -> Shell に環境を変えたことにあると思う。
僕が初めて cd コマンドや ls コマンド (もっとも簡単なコマンド) を打ったのが 2005 年。そして、 JavaScript を始めたのも 2005 年末。
それまでは、プログラミングとは何なのかも全く分かっていなかったし(今もあまり分かってないけど)、
Visual Studio をダブルクリックして開いた画面に C 言語を打ち込むことがプログラミングだと思い込んでいた。
Windows を辞めていなければプログラマとしての成長は無かったかもしれない(あくまでも僕は)。
そして Shell を使い始めてからプログラミングがぐっと身近になった。
Shell の操作はそれ自体がプログラミング(といえなくもない)だからなのかもしれない。(Web に関しては)プログラミング自体が文字列操作だからかも知れない。
で、 Cygwin なんだけど、 Cygwin は Windows 上で Linux や Mac と同じ Shell (と他の様々な CUI のためのツール)を使うためのソフトウェア。
でも、 Windows には Explorer があるし Cygwin 重いしなあ。 Cygwin の良さを知りたければ、一回 Windows アンインストールして Linux か Mac の Shell を使ってみたらどうでしょう?
最初は遠回りでも実は近道、急がば回れ。
というか、 Cygwin とコマンドプロンプトの違いを書いてなかった orz
Cygwin もコマンドプロンプトもシェルという面では同じ。でも、 Cygwin は毎日そればっかり使ってても大丈夫なくらい便利ってことかな。 Cygwin じゃなくて PowerShell でもいいと思うけど
駄文でした
読み返してないので誤字だらけかな

