FirePop!


--> Jump to English page.

※PDICをインストールしてあるのにこの画面が出る場合は、PDICが起動しているかどうか確認してください。

■概要

Firefox上でPDICを利用するアドオンです。
TaN氏が開発した辞書検索ソフトウェアPDIC/Unicode(Ver.5.1.18以降)を別途インストールする必要があります

■機能

・マウスクリックでクリックした単語のポップアップ(DokoPop!のFirefox版みたいなもの)
・マウスを移動するとマウス直下の単語をPDICのメインウィンドウでインクリメンタルサーチ(FireFoxでTool - FirePop! - インクリメンタルサーチをチェックする必要あり)

■Download&Install

このページから(mozilla add-ons)
できない場合はSourceForgeからダウンロード&インストール

■使い方

・まず、PDICを起動
・必要なら辞書をインストール : File - 辞書設定 - 辞書のインストール - サーバーから探す あとは表示に従って
・Firefox上でAlt+右クリックをすると、マウスカーソル直下の単語をポップアップ検索
・Firefoxのメニューからツール - FirePop! - Incremental Searchをcheckすると、マウス移動するだけでマウスカーソル直下の単語をPDIC本体でインクリメンタルサーチ

■既知の問題点/Todo

■サポート

FirePop! Project Team

FirePop! Project Page(SourceForge.jp)のフォーラムへ

■ソースコード

FirePop! Project Page(SourceForge.jp) - まだrepositoryに上げてませんが、xpiファイルをzipファイルとして回答すれば自由に閲覧、編集できます。

■著作権

FirePop! Project Team

■技術詳細

FirePop!自体はソースコードをみてわかるとおり、非常に簡単です。
※xpi, jarファイルは単なるzipファイルなのでxpiファイルを解凍すればソースコードをすべて見ることができます。
特別な部分は、外部アプリケーションのPDICとの通信です。(詳細は後述)

プロセス間通信

FirefoxがnativeでDDEに対応しているはずはないと思っていたが、XPCOMでもDDE clientを実現しているものが無さそう。
自分でDDE clientをわざわざ作るのも何だし、作っても誰も使わない代物になりそうだし、Firefoxのvupに追従するのも嫌なので、別な方法を検討。

WindowsにはCreateFile() APIによるパイプが可能だが、簡単なアドオンを作ってみたところ未定義のエラーが発生している。CreateFile()を呼んでいるはずだろう・・とソースコードを調べたら、確かにCreateFile()を使用していたが、その直前でCreateDirectory()を呼んでいる。なんて余計なことを!!
それさえなければ素直にパイプでFirefoxとPDICが通信できたのに。。
※ググっていたら似たようなことをやろうとしていた人がMozillaZineに投稿していたがレス無し。

残るは、
・ファイル通信
・自前のXPCOM
・外部アプリ起動
・素直にsocket

→とりあえず、ファイル経由によるDDEコマンドを実装。

以下、PDICの作者より提供されている技術情報。

[TechInfo] ファイル経由によるDDEコマンド for PDIC

※FirePop!とのプロセス間通信として使用されています。

外部アプリケーションからPDICを制御する手段として、DDEがありますが、
DDEが使えない、使うには難しい、という場合のために、ファイル経由でPDICへコマンドを送る機能。
使い方は非常に簡単。

PDICを起動すると、

%TEMP%\pdic-dde.d\in

というファイルが作成されるので、そのファイルにテキストを書き込むだけ。
(%TEMP%はテンポラリディレクトリ)
PDICを終了するとこのディレクトリは削除されます。(PDICが起動しているかどうかの判定に使えます)

ファイルの先頭のバイト列により、文字コードを判断
・0xEF 0xBB 0xBFである場合・・・UTF-8
・0xFE 0xFFである場合・・・UTF-16(little endian)
・それ以外・・・Ansi(ShiftJIS)

Format:

[transaction]:[topic],[item],[parameter]

transaction
p - Poke
r - Request(未サポート)
topic, item, parameter
PDICのDDEと同じ定義(PDICに付属のヘルプを参照)

example

p:Dictionary,Open
p:Dictionary,PopupSearch2,take off
※複数のアプリケーションから同じファイルに書き込みを行うと問題があります。
特にセッションは、異なるアプリケーションであっても区別する手段がないため同一となってしまいます。例えば、あるアプリケーションが行ったポップアップ検索の設定が他のアプリケーションにも影響してしまいます。
どれだけこの機能を使われるのかわかりませんし、FirePop!もどれだけ利用してもらえるかわからないため、とりあえず必要最小限の実装にとどめておきます。
(そのほうがFirefoxアドオン側の実装も簡単になるので)

※PDICはpdic-dde.d\inファイルをOSのFindFirstChangeNotification() APIで書き込み待ちしています。変化があると共有可能でOpenFileします。
そのため外部アプリケーションではinファイルへの書き込みはできるだけatomicに行ってください。(だらだら書き込まず、バッファに一度ためて一気にすべて書き出す)
そうしないと、書き込み途中の中途半端なデータでPDICが処理してしまう可能性があります。

■正式登録までの長〜い道のり

最近審査が変わりましたが、変じゃないの?と思う。

事前審査を申請すると・・・FirePop!のページが「見つかりません」になってしまう。
本審査を申請すると・・・・・FirePop!のページが今まで通り実験的なアドオン扱いになる。
何もしないと・・・・・・・・・・・やはり実験的なアドオン扱い。
つまり、事前審査をしないほうがいい←変じゃない?

それに本審査で拒絶されたときに事前審査レベルをクリアしていたら、事前審査OKにしたらいいんじゃないの?>AMO

「僕たちは頑張ってます!」みたいなメールやHPがあるけど、お役所的な仕事にしないでもっと効率よくやったら?>AMO

以下審査履歴。

2009.1.2
初登録

2009.6.28
審査員より回答:JavaScriptの変数・関数はグローバルだから衝突しないようにしなければならない→ソースコード修正

2009.11.10
審査員より回答:外部のソフトが必要であることを注意深く読まないと気がつかない→Alt+clickしたときにPDICが起動していないときはこのページを開くようにした。

2010.x.x
アップロードすれば審査してくれるのかと思っていたらそうではなかったのでこの期間は何もなし。(どうせ審査しなければならない&審査に時間がかかるんだったら申請の手続きは不要にすれば良いんじゃないの?>AMO)

2011.1.28
審査員より回答:Alt+右クリックを何度もしたらこのページがたくさん出てきた→そのページに使用方法が書いてあるからちゃんとやってね→まったく使いにくい!!警告は一回だけにしろ!→メッセージボックスを出すようにし、使用している言語によって英語か日本語のページへ飛び先を判断するようにした。(そもそも開いたページを読まずにクリックし続けるなんてアホな奴がすることじゃないか?>Jorge-sanよ)

2011.1.29
思ったより本審査を通すのは難しい(操作性を理由に拒絶するとは思わなかった・・・審査プロセスにそんな基準はないだろう???)。すでに事前審査レベルはクリアしているので、とりあえず事前審査を申請。

2011.2.5
三日で終わるはずの事前審査が一週間経っても音沙汰がないので、修正したバージョンを公開し再び本審査を申請。

2011.2.19
Full Review Nominations/10 days+に135(46%)とあるがその中の一つがfirepop!

2011.3.1
現在のreviewのステータスを見ると2/25の時点で「10days+」がゼロ、つまり10日以上の審査待ちのadd-onは無くなった!と主張していますが、FirePop!は一ヶ月近く審査待ちです。ということはアドオンのレビューは「インチキ」っていうことですね。自分の仕事ぐらいちゃんとやれよ>Jorge
我慢ならないので、意地悪な返事をJorgeに書いてやった。しかしよく読むと、システムのバグでリセットされたらしい。

2011.3.17
現在のreviewステータスを見ると、3/11の時点で「10days+」が1つだけ。これは間違いなくFirePop!だろう。ということで再度「いぢわる」なメールを出してやった。
そうするとすぐに返事が。
お前のadd-onはほぼケツにある
↑ほぼじゃなくて、一番最後だろう
今は新規審査ではなく、FireFox4対応のアップデートのadd-onを優先的にやっている
↑おいおい、あれだけ審査申請を出せと言っておきながらアップデートが優先かよ
"だが、なるべく早いうちにおまえの審査はやってやる
遅れてすまん、できる限りのことはやる
前向きな返事が返ってきたが、嫌われているのは間違いない。次はどんな理由でrejectするだろうか?

2011.3.18
現在のステータスを見ると復活。10days+が211もある。しかしこのシステムはいまだにバグが取れないらしい。何やってるんだか。信頼できない奴等に審査されなければならないっていうのは変な話。

2011.4.23
現在のステータス。10days+が359件。「今後は本審査を通らなければ公開してあげないから早く本審査を申請しろ」と以前から言っていたのに肝心のreviwerがこの状態。もう話にならん。。彼らは「忙しいから」を言い訳にするのだろうが、こんな奴等、誰が信用するの?審査を申請してから二ヶ月以上になるからね。彼らにこれだけのタスクを処理するスキルがなかった、ということかな。今まで付き合ってきた自分がバカだったよ>Jorge
この件に関しては向こうから相応の返事・結果が返ってこない限り、取り扱い中止。(いじめっ子メールを出したが)

2011.4.25
返事が来ました。意訳すると、
- そんなメールを出してもムダだから、止めてくれ
- ほとんどの人達はボランティアで審査やっている
- 何人かは一週間当たり10個のレビューをやっており、ほかは100個台だ。
- 優秀な奴は月に1400やっている
- 167個のアップデートが審査待ちになっている
- もしそれを処理しなければ1〜2日で2倍になってしまう
- 一番長く待たされている二つのものは10日以上経っている、ほかは9日以下だ
- 414個の本審査待ちがある、平均して2〜3週間で審査は終わっている
- 仮審査は157個ある。もし急ぎたいのなら仮審査にしてくれ。これなら平均2週間程度だ。ただしadd-onに依存するので保証はない。
- それに加え、FireFox4のリリースで審査要求が2倍に増えている
- とにかく人を嘘つきだの、スキルがないって言うのはやる気を起こさせない
- もしお前がこの状況を変えたいのなら、審査員になって審査待ちを減らしてみろ。
- もちろん、お前がどんなにハイレベルなスキルを持っていても自分自身のadd-onは審査できない

ということでいじめすぎでした。(そんなことはないと思うけど)

今回の件に関係なく、審査(Editor)をやってもいいと思っていたので、これをきっかけにやってみてもいい。実体がどうなっているのか知ることもできるし。
FirePop!に関してはこれで半永久的に審査される機会を失ったわけですが、そもそもこの審査に通す理由はあまりない。
- ここの審査を通ると日本だけでなく世界中に公開される(公平に見る機会が与えられる)
- しかし、PDICは日本人以外にとってはあまり有用なものと感じないはず(PDIC用の辞書が無いことなど)
- だったら日本限定でいいのかな
ということで正式登録することにmotivationはあまりなかったわけです。そこへ、
「正式登録しないと今後公開されない」
っていうことであわてて申請したら、向こうがこんな状態でしょう。こんな簡単なadd-onに一ヶ月近くも待たされているのに、5日で終わらせるように努力している、けど平均2〜3週間で終わっている、っていうのは嘘つきといっても罰が当たらないだろうと。「10days+」なんていう適当な集計・情報公開をせず、現在の状況をありのままに出しておけば今回のような無用な誤解をせずにすんだはず。

現時点での選択肢は、
・面倒くさいのでこのまま審査待ちにしておき、審査員のボスが「このFirePop!はなぜ半年もpendingされているのだ?」「あ〜だこ〜だ」「それは審査体制が悪い、改善すべきだ」という状況になるのを待つ
・審査員になってみる
自分的にはいずれしかない。こちらから謝る気は毛頭無い。だって向こうが悪いんだから。「嘘つき」って言われてやる気が失せるんだったら「ボランティア気取り」は止めて欲しいね。それが嫌だったらお金取ればいいし、お金取っている人のほうが対応は真摯だよ。いったい何のためにやっているの?

とにかく、
・現在のような状況を招いたのは彼らの責任
・最低でも現在の状況を今よりわかりやすく公開すべき
・ボランティアでやっているから遅れている、は理由になっていないし、関係のないこと。(そうは言っていないがそんな印象を受ける)

2011.5.23
最近のadd-ons Forum
を見ると、一ヶ月経ってもreview結果が来ない、と言う人が発言している。自分ももちろんそうなのだがそれが表面化していると言うことは、そう言う人が多いと言うこと。
「嘘つき」だの「スキルがない」といじめてきたけど、そう言う結果を招いたのはシステムの問題なのだからいい加減、改善したらどうだろうか?それにFirefoxは短い間隔でメジャーバージョンアップをやるって言っているから彼らの負担はさらに増える方向。自分はいじめるつもりは元々無いんだけど、そういうドンクサイ対応を批判する意味でも、改善の提案メールを出してみようと思う。

2011.5.24
と思っていた矢先、今世紀中に不可能と思われていた本審査が通ってしまった。これから新たな展開が始まると思っていたのに。。

2015.12.23
Firefox version 43から署名のないアドオンはインストールも使用もできなくなった!

about:configで設定を変更すればできるが、それはただ単に設定を難しくしただけで何も意味がないでしょ?
Mozillaの連中はセキュリティの本質がわかってないんじゃないの?
ということで実験用にユーザーに公開していた野良アドオンも本審査を通さなければならなくなった。本審査が通るまで、どうしても最新のFirePop!を利用したい人はabout:configの設定を変更しなければならない。一般的にはセキュリティのリスクが上がる、という認識だが、それが正しいとすればリスクが上がった状態をユーザーに強いることになってしまう。つまり、今回の仕様変更はユーザーへのリスクを上げた仕様変更ということになる。(自分はそう思わないが、Mozillaの論理からすればそうなる)
とにかく、「野良は一切ダメ!」という仕様変更は本当にバカだなぁと思う。

今回の仕様変更により、本審査待ちが増えていることだと思うが、以前あったreview状況のサイトが無くなった!?
自分のググり方が悪い可能性もあるが、もし状況を知らせるサイトが無くなったとすると、これもまた困ったものだ。
Mozillaからすればアドオンの審査をするだけだから、アドオン作者が気を揉むくらいいいだろう、なんていう発想じゃなかろうか?いやいや、こちらにはアドオンユーザーがいるわけですよ。現在どういうステータスなのか、ユーザーに対して説明する必要があるわけですよ。今まで野良で使えていたものが使えなくなったわけですから説明責任が発生するわけですよ。
そういう事情をわかってないアホな連中なのか、わかってるけど「僕たちはボランティアという立派な仕事をやっているんだから、文句は言わんでくれ」なんていうとんちんかんな考えじゃなかろうか?
(→審査待ち状況は開発者ページにありましたが・・・)

今の審査が数日内に終われば以前のようにいぢわるをすることはないと思うが・・・

2015.12.24
本審査はまだだが、質問がやってきた。
「なぜURLを使用する必要があるのだ?」
やっぱり来ましたよ。なぜPDICでユーザーが検索したURLが必要なのかと。
これがセキュリティ上本質的なものであれば追求しなければならないことだが、URLなど個人情報でもなんでもない。しかしその必要性をわざわざ説明しなければならない。
外部アプリに渡すのだから仕方ないけど。
本当はこのまま野良アプリでもいいんだけど、特別な設定をしない限り使えないというのはユーザーにとって不便。
もしURLの保存は危険だ!などと言い始めたら徹底的に闘って、奴らのアホさ加減にうんざりして、野良アプリで公開し続けることになるだろう。

2015.12.28
今回は特別もめることなく正式リリースとなりました。