僕もクイズ
この問題がとてもおもしろかったので、
http://rssblog.blog81.fc2.com/blog-entry-31.html
僕もなんかおもしろいクイズないかなあと思って考えてみた。
で、
昔、中学の社会の先生が出したクイズを思い出したので出題してみる。
問題です。
● ┃ ○ ● ○ 全員こっち向き→ ○:白い帽子を被った人 ●:赤い帽子を被った人 ┃:壁
- 赤白帽を被った四人の人が一列に並んでいます。
- 四人は交互に赤白赤白と帽子を被っています。
- 全員右方向を向いています。
- 自分より前の人の帽子の色は見えますが、後ろの人と自分の帽子の色は見えません。
- 左から一番目の人と二番めの人の間には壁があり、壁の向う側は見えません。
- 赤の帽子が二つ、白の帽子が二つあることは全員が知っています。
- どのような順番で帽子が並んでいるかは誰も知りません。
このような状況で、以下のようなゲームをします。
- 自分の帽子の色を叫んだ人の勝ち
さて、勝ったのは誰でしょう。
簡単ですかね
(追記)ググったら普通に答えが出てきた・・・
有名な問題だったのですね。
完全私的 忘却防止メモ Firefox 上の全ての関数監視
with(Components) var jsd = classes['@mozilla.org/js/jsd/debugger-service;1'] .getService(interfaces.jsdIDebuggerService); var store = new なんかストレージっぽいもの; function hook() { jsd.enumerateScripts({enumerateScript: function(s){store.add(s)}}); jsd.scriptHook = { onScriptCreated: function(s) {store.add(s)}, onScriptDestroyed: function(s) {store.remove(s)} }; }
jsd.breakpointHook = { onExecute: function(frame, type, value) { /* ... */ } }
script.setBreakpoint(script.lineToPc(lineNo, Components.interfaces.jsdIScript.PCMAP_SOURCETEXT));
Firebug の monitorEvents unmonitorEvents がバグってる件とそのバグ修正方法
以下のエントリーを見て
FirebugのmonitorEventsが動かない - Enjoy*Study
で、実際はどうなんだろうと試してみた。
ちなみに monitorEvents とは
Firebug のコンソールで
>>> monitorEvents(document.body)
と打ち込むと document.body にあがってきた全てのイベントをモニタリングできる
>>> monitorEvents(document.body, 'click')
と打ち込むと document.body にあがってきたクリックイベントをモニタリングできる
>>> monitorEvents($('target'))
もちろん document.body 以外もできる
そんな機能
たしかに、現在の Firebug 1系 ではこれがバグっててまったく機能してない!
なんで今まで気がつかなかったんだろう!
このバグっていつのバージョンからだろう??これは困った。
というわけで修正する方法
まず、 Firefox のプロファイルディレクトリに行く。
環境 | プロファイルディレクトリ |
---|---|
WinVista | C:\Users\[ユーザ名]\AppData\Roaming\Mozilla\Firefox\Profiles\[ランダムな文字].default\ |
WinXP | C:\Users\[ユーザ名]\AppData\Roaming\Mozilla\Firefox\Profiles\[ランダムな文字].default\ |
Mac | ~/Library/Application Support/Firefox/Profiles/[ランダムな文字].default/ |
Unix系 | ~/.mozilla/firefox/[ランダムな文字].default/ |
次に以下のファイルを zip で解凍
extensions/firebug@software.joehewitt.com/chrome/firebug.jar
解凍したら firebug.jar に入っていた以下のファイルを開く
content/firebug/commandLineAPI.js
で、以下のような場所を
this.monitorEvents = function(object, types) { monitorEvents(object, types, context); }; this.unmonitorEvents = function(object, types) { unmonitorEvents(object, types, context); };
こういう風に修正
this.monitorEvents = function(object, types) { FBL.monitorEvents(object, types, context); }; this.unmonitorEvents = function(object, types) { FBL.unmonitorEvents(object, types, context); };
元のように全体を zip でかためて元の場所に戻す
extensions/firebug@software.joehewitt.com/chrome/firebug.jar
いやー
あらためて monitorEvents 便利!
mixi の絵文字を無効化する JavaScript
mixi の絵文字
うざいって人多いんじゃないでしょうか
というわけで。
Greasemonkey などに「ご自由に」「積極的に」お使いください
$$('.emoji').invoke('setStyle', {display: 'none'});
mixi は prototype.js 使ってるからコード注入がとても楽ちん