2006年 08月 20日

dll 関数の補足と TODO

dll 関数 の補足と覚書

GM_xmlhttprequest の onload でなんで .call とかやっているかというと、一部ライブラリが this を window (Global) と仮定したコードになっているからです。eval のコンテキストの this を window (Global) オブジェクトにしてあげて、例えば MochiKit の export 先オブジェクトをそこにしてあげているわけです。

でもって、なぜ unsafeWindow でなく window なのかっていうのは、その export された関数とかが、ロードされたページに影響を及ぼさないためです。Greasemonkey 中の window はページ内のスクリプトからはアクセスできない (safe) ので、Greasemonkey 内限定で使う場合、副作用の懸念を減らすことができます。


でもって、id:brazil さんの記事 で、あああって思った。全部とってきてから eval したら、変に何回もリクエスト送らないでいいや。と、いう、か、GM_setValue 使えばいいんだけど、ちょっと GM_setValue で長い文字列突っ込むのは怖い。

Japanize

要素またぐときってどうすればいいんだろ。一部が強調されてたりとか、br で改行されていたりとか。

何このシチュエーション

フロ入ってあがってきたら gerry

Japanize

<div>
foobar foovar fookkk <a href="aa">aa</a>
</div>

ってあったとき、foobar foovar fookkk を翻訳する方法がわからないな。

あれ、できてる場合もあるなぁ。単純に入力ミスかなぁ。

あー。改行とか &nbsp; とかあるとだめなのか。正規表現にすればいいらしい

http://japanize.31tools.com/data/ 以下に location.host のディレクトリ。最新の翻訳データは current.txt

DOMNodeInserted と DOMCharacterDataModified イベントをリッスンしているため、JS を追加される文字データも翻訳されるっぽい。

2006年 08月 19日

XPath

XPath の解説書こうと思ったけどあまりの説明力のなさにぜつぼうした

  • データ型
  • コンテキスト

ポイント

  • ルートノード以外のノードは全て親をもつ (属性ノードの親はその属性の属する要素だったりする。書くときは直感的だけど、理解するときは微妙にえ?って思う)
  • ルートノードはルート要素ではない。ルートノードは名前をもっていない。
  • / と [] によるコンテキストの移動

XPath 1.0 では独自にデータ型を定めている。存在するデータ型は以下の通り

  • ノード集合
  • 文字列
  • 数値
  • ブール (真偽)

コンテキスト

とりあえずコンテキストさえ意識できればいいかもしれない。

  • ノード ( コンテキストノード)
  • 一組のゼロ以外の正の整数 ( コンテキストポジションおよびコンテキストサイズ)
  • 変数のバインディングの集合
  • 関数ライブラリ
  • 式の範囲内でのネームスペース宣言の集合

最初の二つ以外は特に重要ではない。とういうか、コンテキストノードさえ意識していれば、コンテキストを意識するということにはなる。上のを見て「変数が使えるのか!」と喜んではいけない。変数は XPath 単体では使用することができない (代入ができないので)。

さて XPath における / はコンテキストを分離する記号のひとつである。 (述語=ブラケットで囲まれた部分でもコンテキストが変わるので、ブラケットもコンテキストを分離する記号。/ とブラケット以外ではコンテキストは変わらない (はず))

    • >

記事のロングテール

どうやったら過去記事をロングテール化させられるんだろう。

2006年 08月 18日

コード打とうとすると

やっぱ、すっごい間違えるね! クオーテーションの位置がだいぶ戸惑う。括弧がズレる。() も [] も。慣れよ!
あー一瞬前まで「これ書こう」って思ってたことを完全に忘れた。

あ、そうだ。Windows でも vim 使おうかと思ったんだ。なんか xyzzy で ESC 連打して C-g 連打して、またターミナル戻って C-g 連打することが多々あっていやだ。

gvim

インストーラーで gvim70 を入れた。既存設定ファイルをもってきて、termencoding とかをコメントアウト。_gvimrc を新しく作って以下のようにした。

set shellslash
set columns=106
set lines=32
set guioptions-=T
set guifont=M+2VM+IPAG_circle:h10:cSHIFTJIS
colorscheme desert

が、なぜか xml モードで閉じタグ omni がうまく行かない。html モードにするといけるけど、インデントがおかしく。くまった。

vim i

insert-mode のときはカーソル移動どうするんだろ。insert したらすぐ normal に抜ける癖をつけるのかなぁ。無理っぽい。

g:subtech:id:secondlife:20060818:1155864164
mjsk
抜ける癖つけよう。

どうでもいいけど

たまに用語とか全然わからない気持ちになって自分の日記読んだりすると「なんだこの用語ばっかのわかりにくいにっきわ」とか思ったりする。
で、少しすると今度は、これって用語がわかっていても理解できないよな、とか思い出す。日本語へたすぎる。ああ

左手マウス

右手が疲れたときよく左手を使うせいか、いつの間にか左手で普通にマウスが使えるようになってる (マウスボタンは右手モード)。キーボードをちゃんとうてるようになりたい。C-[ 打とうとして { になるのが泣ける。

KBD

HHK pro とか金もち杉

無線LAN

普通どんぐらい飛ぶのかなぁ。階またいでも大丈夫なのかな。
障害物があるとだめって、どのぐらいだとだめなんだろう。2.4GHz だと電子レンジの同じらしいけど、つまり電子レンジに貼ってある網ぐらいの細かさだともう通さないんだよなぁ。っていうか結局壁とか床の素材によるか。

GERRY POP FAN CLUB

食べすぎっぽい。
callback({ weight: 57.2, height: 176 });

GreaseMonkey hosting

環境変えるごとにぐりもんインスコするのが面倒くさいから、オンラインにスクリプトをインストールして、起動時に全部読み込むとかが欲しい。gm_scripts ディレクトリがそのままオンラインになる感じ。
つまり、起動時に gm_scripts ディレクトリをオンラインからダウンロードしてきて、終了時にアップロードする拡張があればいいんだろうか。
と、思いついても実行できないのがなんかなぁ。Fx の拡張を作ろうとか、結構前から思ってるけど、何度やろうとしても開発方法がうまく理解できない。

と思いきやこれだけじゃだめか。GM の設定もオンラインに保存してくれないとだめだ。

アサマシ

http://astore.amazon.co.jp/nuso-22
もっと頑張ってアサマシろうかなぁ。

それは本当に意味があることか、しかし