ヤシン師爆殺画像(グロ)を踏んでしまった。おえっぷ。Mozilla版GROYAって需要ありますかね。
フレームを使ったページではF6を押すとフレーム間で移動できる。まだでてないけど、Alpha7以降のXUL/Migemoを使う際には
覚
えておくとよい、という風になるはず。とくにマウスが使えないとき。
にわにはにわうらにわにはにわにわとりがいた(庭には二羽裏庭には二羽鶏がいた・庭に埴輪裏庭には二羽鶏がいた)
StedSidebarでは純粋なテキスト(STEDFormatの だけどね)しか扱わないのでこれ以上の拡張のしようがないのだが、メモ鉄と かWeBoXと かみてると拡張してみたくなってきた。ただ、StedSidebarはSTEDFormatで データを保持することに存在意義があるので作るとすれば完全に別物になると思う。
というわけでリサーチ開始だ。
DEBUG=trueだったのをfalseにしたAlpha7でMozillaSuiteに正式対応するためにいろいろといじっていたところ、辞書までのpathに日本語があるとうまく読み込めな いんじゃないか説が浮上。いままでそういう報告がないのが不思議だが…ひょっとしてWin9xのみなんだろうか。
今日はハイテンションです。今年度の春季講習が終わった。やれやれだ。また来月一日から始まるわけだが。明後日じゃん。
flysonさんの一月の日記にて
HTMLからTextに変換する方法が載っているのを思い出した!まだ分からないがこれで挙動不審なのが解決するか?少なくともscriptは
取り除いてくれるとありがたいのだが。
いま調べてみた。この関数ではscriptは消える。それはいい。だが*がだめ。なんかおかしい。既知の問題にある*や
#
は〜というのはちゃんと確認したはずだったのだが、いま試してみたらrange.toString()では再現しない。*が出
てこないのだ。うーむ。こうなったらgetInnerText()を
使うしかないのか。スクリプトで処理するのは遅くなりそう
なので餘りやりたくないのだが…(SurfbarやXUL/Migemoの製作課程でループの遅さに嫌気がさしたので。作りが甘いと言われればそれまでだ
けど。)それともrangeからhtmlの文字列を生成した後にol、ul、liを
取り除けばいいのか。これなら
正規表現
でタグを取り除くことにより実現できそうだ。正規表現は早いですよ。ええ。
つうかStedSidebarをしばらくインスコしていなかったので気付かなかったのだった。自分で作ったものなのに…
from http://white.sakura.ne.jp/~piro/latest/2004/03.html#d30
XUL/Migemo のフレーム対応化改造をしていて、
wwヘ√レvv〜(゚∀゚)─wwヘ√レvv〜
その後、メールチェックをしてありがたく頂戴仕りました。いつもすみません。
ふと、XUL/Migemoのキャッシュの容量を見てみた。…158KB。k→かきくけこの処理を入れてからかなり増えたような。本家に比べればま だまだましだけど。あと最近時々前触れもなくマシンが2秒ほど固まる謎の症状が出ていて、そのせいで0.5秒もかからないような長い単語もキャッシュに登 録されている。
キャッシュがやたら増える原因はどっちかっていうとdump();にあったようだ。無効にしたら改善した。なんじゃそ
りゃ。
変わった。白くてまぶしすぎ。鈴木その子みてえだ。タブがなくなったのは視覚的にありがたくないような。
昼夜逆転生活だったのを戻したら平衡感覚がおかしい。気持ち悪い。GELO吐きました。
数時間寝たら気分がよくなったので、なんとなくGoogleを漁りつつ完全回復を待っていたところ、XUL/Migemoのページがキーワード 「Migemo」で5位であることを発見。意外と早かったな。さすがGoogle。2004-03-30現在消えてます。恐らく、
Ψ ドンドコ
ドンドコ ○ノ ググル!!
ノ|へ ∫
∫ Ψ < .○ググル!! ヽ○ ググル!!
ヽ○ノ _<|_ へ|ヽ
|へ |__>_| >
< | | ドンドコ
Ψ ∫ Ψ ∫
ドンドコ ヽ○ノ ヽ○ノ ググル!!
|ヘ |
ググル!! / < \ ドンドコ
ググウレ〜ググウレ〜♪
ググウレ〜♪
(ドンドコ ドンドコ ドンドコ ドンドコ…)
…なのでしょう。その後なぜか復活してますが。
Piroさんからタイムアウトの処理のコードをいただいた。Alpha6でマージさせます。どうもありがとうございます。
ときどきF4がうまく働かないようだ。ひとつ修正入れるだけでよかったけど。
Alpha5になりました。変更点は次の通りです。
現在のFirefox用設定パネルを無理やりそのまま組み込んだのでボタンが不恰好ですが一応使えることは使えます。「Advanced」に XUL/Migemoの項が出現します。OKボタンが二つありますが上のほう押したあとに下押せばなんとかなる。多分。見た目は気にしない!(アンインス トール機能未搭載なので自分で復旧できる自信のあるSeamonkeyユーザのみインスコしてください)
Alpha4の変更点は次の通りです。
textarea:2004-03-23
Wikiを編集しているとtextareaを使わざるを得ないわけですが、でかいページになると編集する個所を見つける
のが非常に面倒くさい。見出しへ移動とか検索とかできたらいいのに。たまにHTMLAreaを使ったWeblog入力フォームとかあるけどあれのような感
じで(ulのときは自動的に*を補完するなど)入力できるtextareaとかあったらおもしろそう。textareaを
拡張するのはちょっと難しいかもなのでWiki用XULアプリとかどうだろう。いやまてよ、-moz-binding使えば
ひょっとして…
なるほど、tbox.setSelectionRange
(うんぬん,かんぬん);ね。XUL/Migemoが一段落したらhackしてみよう。
実は自分自身ではXUL/Migemoをあまり活用しておらずFindAsYouTypeを自分で実装したものを使っているような雰囲気だったので すが、「scroll」で検索したところ「スクロール」もひっかかって、WOW!と思いました。こりゃ誰だってMozillaで使いたくなりますよね。
現在XULのチュートリアルというとXULPlanetのもの などがありますが、僕自身はVB厨時代から人様のアプリやサンプルソースを改造することで覚えてきた人なので、そういうひとには改造推奨のテンプレみたい なアプリを大量に提供すると親切なのではと思った。…ってよく考えてみるとこのサイトは最初はそういうつもりで開設したものだったのだ。XULのページに その痕跡が。テンプレねぇ。サイドバーと設定パネルのサンプル作ったきりだ。
k→「かきくけこ」は意外と面倒くさいので頭がクリアなときに。
Esc/Enterで検索項目をクリアするようにして、Spaceでスクロー
ルできるようにした。BackSpaceあたりの挙動も改善したかもし
れない。自動スタートと「/」を押してからスタートの切り替えの設定ができるようになったらAlpha3Alpha4としよう。(ここら辺は某スレ
(Firefoxスレ9)で出た
ことですね。どうもありがとうございます。)
ゲイツOSのことしか考えてなかった…他のOSでは辞書が読み込まれない恐れが。それもそのはず、aFile.initWithPath
(設定から読み込んだパス+"\\"+云々)だもんなぁ。こう言う個所ではappendで
すよ旦那。やっぱこういうところに素人さが出てしまうのだな。
XUL/Migemoの基本的なアイディアとまったく同じレスがMozilla スレッドM12(136)で既に出ていたのを発見。僕がMozillaを使い始めたのは0.9.8、このスレを見るはずもなく。 Moz1.0RC3あたりで一度IEに戻ってるし。ちなみにPhoenixでMozilla系にカムバックしたクチです。
Alpha3になりました。Alpha3では/を押してからの検索をサポートしたかったのですがちょっとした修正が自分でも オオっと思ったので今のバージョンをAlpha3とします。変更点は上記にもありますが整理すると
textareaやabout:configのfilterで入力できなくなるのを修正 また新たに発覚したバグは
Frameで検索できない!これは致命的だ!Googleの野郎め!Frameset消えrf、gkjbsflktghをr
…というわけでToDoに追加ですね。これは大改造がいるので後回しになりそう。ごめんなさい。
Alpha2リリース。[undefined]|undefined問題は多分解決したはず。
FindAsYouType化に着手。辞書ファイル設定ダイアログ追加。暫定的な「次を検索」のキーはF4。これまでのところうまくいっているよう にもみえる。今日明日あたりにAlpha1を公開したい。
音設定に関する拡張も作るかもしれないことを豫告してしまった手前くずプログラムを作ってみたのだが音のサンプルが悪かったのかページをロードする たびにうるさくてたまらない。
XUL/MigemoのReadme案:
display:noneされている要素があると挙動不審になるとまあ酷い代物なので一通り気分を味わったら拡張を無効にすることを強くお勧めします。
キャッシュに難あり。ときどき[undefined]|undefinedで検索されてしまう。妙だな。
悪いニュース。昨日のバグはまあ文章を訂正した通りなのだが、どうやって修正しようか。Rangeをコピってscriptだ
のstyleだのを削除すればうまくいくだろうか。つかよく考えてみるとdisplay:noneさ
れている要素があるとややこしいことになる豫感。(多分scriptなどは内部ではdisplay:noneし
ているはず) 面倒だ。nsISelectionのコードに解決策があることを祈ろう。
さて、こっちは良いニュース。FindAsYouType化の実験が成功しました。Piroさんありがとうございます。あとはコードをきれいに書き なおして(実験コードが大量に残っているのでほぼ全面書き直し)、リンクにヒットした場合にフォーカスを移すのと、メモリキャッシュを実装すれば公開でき そう。
ああ、M$-IMEuzeeeeeeeeeeeeeeまたとんちんかんな変換しやがった。
メモリキャッシュはBackSpaceがもたつくのを解消するために入れただけなので起動時にはロードしないことにした。苦 情が出るようなら変更するってことで。
バグをひとつ発見。<script>や<style>中
のコメントの中の文字列も検索してしまうので挙動不審になる。toString()したときに<!--aaa-->の
ようなコメントもテキストに含まれてしまうことが原因のようだ。
いいかげんk→[かきくけこっ]を実装しなくては。
BackSpaceを押したときにもたつく。メモリキャッシュいるのかな。まあ今育っているキャッシュ,pそんなに大きくないから(辞書よりはるか に小さい)起動時に読み込んでしまってもいいかも。
ところでみなさん僕の文章は日本語になってますか。後から見返して意味不明になっていないか心配なのですが。
いまいちFindAsYouTypeの機構が分からないので替わりにダイアログを作ってみた。
この状態でもほしい人いますか。
記号が入力されたときにサニタイズする処理が要るなぁ
Javascript から別スレッドを作成するには、nsiTimer しかないのかな。
あとでSurfBarに使えるか試してみよう。あれが開いたままになっているとどうにも重くて。
かなり雑だがキャッシュはだいたいOK。(その雑な部分が結構問題だったりするけど。)速度的にもほぼ問題なさそうだ。これまでにできたキャッシュ のサイズは35KB。まだ辞書に濁音の行(が、ざ、だ、ば、ぱ)やアルファベットを入れていないのでもうちょっと増えるだろうがそんなに場所とることはな いだろう。
で、FindAsYouTypeがどうやってwindowのイベントリスナを登録しているかはわかりかけてるのだけれど、いつどこでそれをやってい るのかがわからない。だれかわかりませんか。
たった今、今の実装の困った仕様がわかった。RangeをtoString()するとき、olやulが
含まれていると丸ポチや数字が*とか#になってしまう。というわけで*や#は検索できなくするかも。対処できればいいんですけど僕にはどうしようもありま
せん。
キャッシュの原型ができた。正規表現の生成に1秒以上かかった場合はキャッシュするようになった。「か、き、く、け、こ、かく」をキャッシュしたと こ ろ6.81KBに。これを多いと見るか、適当と見るか。(ちなみにmigemo本家についてきたキャッシュらしきファイルは478KBだった。)少し使い こんで様子を見たい。
あれ、最近ここに書くときの文体が変わっている。
検索の方は一段落ついたのでキャッシュ実装に入ります。これがないとやはりきつい。
migemoもどきでnsIWebBrowserFindを使っていたのをnsIFindに変えた。bodyContent =
bodyNode.QueryInterface(Components.interfaces.nsIContent);がどうしてもで
きないので別な方法で逃げた。もしかしたら手順が間違っていたのかもしれない。
FindAsYouTypeを乗っ取るのはどうしたらよいのかをそろそろ考えなければ。
名前はどうしよう。XUL/migemoでいいですか。動作がかなり違うのでmigemoを名乗るのは気が引けるんですが。(C/Migemoを使ったXULアプリが出てくると厄介。) JS/migemoの方が安全かなぁ。
FindAsYouTypeを乗っ取る方法がわからん。ど う すんべ。
1秒だけ「な」の検索が早くなった。短い文字の検索はMigemoのようにキャッシュを使うようにすれば何の問題もないのはわかってますが、まあ早 いに越したことはないですから。
ただ、一番候補の多い「か行」の検索はまだまだ遅い。14秒もかかる。
不具合がたくさんありそうな豫感(つうかたくさんある)だが、ここまでこぎつけた。実験的には成功といってよいかな。この調子で行けばmigemo的な ものは作れそう。
だいたい五秒かかる。(ちなみにunkoはほぼ一瞬になった)とりあえず今までやったこと。
さて、次はwebBrowserFindを使ってページ内検索すればとりあえずできるのかな。速度はともかくとして。
某スレ (Firefoxスレ8)で 出たmigemoの話題。nsIFindで正規表現を使えるようにするのが筋だとは思うけど、現状純粋なXULでどこまで出来るか興味があるのでローマ字 検索っぽいものを途中まで作ってみた。(Type Ahead Findみたいにする気力はない)
スクリプトは切り張り&改造という素敵なブツ。辞書はC/Migemoか らかっぱらってきた。やはり素の辞書(2.78MB)+XULではどうしても遅い。「unko」で約1.5秒。うちの今となっては低スペックのマシン (PCG-XR1G)ではキツイ。(メモリは192MBに増やしてある。)辞書をうまいこと分解すればいいかな。正規表現を短くする処理はまたあ とで。
で、一番の問題はどうやってページ内を検索するかなのだけど、
document.createRange().selectNodeContents(document.body)て
な具合で取得toString()しておくtoString()しておいたテキストを3.の正規表現で検索 とかどうでしょ。素人の妄言なので突っ込みどころ満載だとは思うけど。
Ender HTML Typing Rulesより。ULとかOLとかを書くときネストしたくても最近までやり方を知らなかったのでメモ。単にtabキーを押せばよろしい。もしかし て常識か。

Mozillaのブックマークツールバーのメニューの上でGimpと同じ事ができたら良いんですけどね。
なんかMozillaZineとFxまとめサイトとOpera7.23の画面を見てたら需要がありそうなので再開しようかな。
0.17が出ていたので使ってみた。前からそう
なのかは知らないけどDL,DT,DDあたりの動作がComposer
に比べてはるかに素直。うちで作っているブツは当然Composer同等のコンポーネントを使うのでうらやましい。XULレベルで対応できればよいのだけ
ど。子供だましレベルなら可能かもしれない。
NvuではExtensionをサポートするのだろうか。もしそうなら真っ先にやりたい。